(self, **kwargs)
| 1096 | parameters = ResourceMethodParameters(methodDesc) |
| 1097 | |
| 1098 | def method(self, **kwargs): |
| 1099 | # Don't bother with doc string, it will be over-written by createMethod. |
| 1100 | |
| 1101 | # Validate credentials for the configured universe. |
| 1102 | self._validate_credentials() |
| 1103 | |
| 1104 | for name in kwargs: |
| 1105 | if name not in parameters.argmap: |
| 1106 | raise TypeError("Got an unexpected keyword argument {}".format(name)) |
| 1107 | |
| 1108 | # Remove args that have a value of None. |
| 1109 | keys = list(kwargs.keys()) |
| 1110 | for name in keys: |
| 1111 | if kwargs[name] is None: |
| 1112 | del kwargs[name] |
| 1113 | |
| 1114 | for name in parameters.required_params: |
| 1115 | if name not in kwargs: |
| 1116 | # temporary workaround for non-paging methods incorrectly requiring |
| 1117 | # page token parameter (cf. drive.changes.watch vs. drive.changes.list) |
| 1118 | if name not in _PAGE_TOKEN_NAMES or _findPageTokenName( |
| 1119 | _methodProperties(methodDesc, schema, "response") |
| 1120 | ): |
| 1121 | raise TypeError('Missing required parameter "%s"' % name) |
| 1122 | |
| 1123 | for name, regex in parameters.pattern_params.items(): |
| 1124 | if name in kwargs: |
| 1125 | if isinstance(kwargs[name], str): |
| 1126 | pvalues = [kwargs[name]] |
| 1127 | else: |
| 1128 | pvalues = kwargs[name] |
| 1129 | for pvalue in pvalues: |
| 1130 | if re.match(regex, pvalue) is None: |
| 1131 | raise TypeError( |
| 1132 | 'Parameter "%s" value "%s" does not match the pattern "%s"' |
| 1133 | % (name, pvalue, regex) |
| 1134 | ) |
| 1135 | |
| 1136 | for name, enums in parameters.enum_params.items(): |
| 1137 | if name in kwargs: |
| 1138 | # We need to handle the case of a repeated enum |
| 1139 | # name differently, since we want to handle both |
| 1140 | # arg='value' and arg=['value1', 'value2'] |
| 1141 | if name in parameters.repeated_params and not isinstance( |
| 1142 | kwargs[name], str |
| 1143 | ): |
| 1144 | values = kwargs[name] |
| 1145 | else: |
| 1146 | values = [kwargs[name]] |
| 1147 | for value in values: |
| 1148 | if value not in enums: |
| 1149 | raise TypeError( |
| 1150 | 'Parameter "%s" value "%s" is not an allowed value in "%s"' |
| 1151 | % (name, value, str(enums)) |
| 1152 | ) |
| 1153 | |
| 1154 | actual_query_params = {} |
| 1155 | actual_path_params = {} |
nothing calls this directly
no test coverage detected
searching dependent graphs…