Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/proto/marshal/rules/field_mask.py: 40%
10 statements
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 06:45 +0000
« prev ^ index » next coverage.py v7.3.2, created at 2023-12-08 06:45 +0000
1# Copyright 2022 Google LLC
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
15from google.protobuf import field_mask_pb2
18class FieldMaskRule:
19 """A marshal between FieldMask and strings.
21 See https://github.com/googleapis/proto-plus-python/issues/333
22 and
23 https://developers.google.com/protocol-buffers/docs/proto3#json
24 for more details.
25 """
27 def to_python(self, value, *, absent: bool = None):
28 return value
30 def to_proto(self, value):
31 if isinstance(value, str):
32 field_mask_value = field_mask_pb2.FieldMask()
33 field_mask_value.FromJsonString(value=value)
34 return field_mask_value
36 return value