MCPcopy Create free account
hub / github.com/python-hyper/uritemplate / parse

Method parse

uritemplate/variable.py:229–269  ·  view source on GitHub ↗

Parse the variable. This finds the: - operator, - set of safe characters, - variables, and - defaults.

(self)

Source from the content-addressed store, hash-verified

227 return self.original
228
229 def parse(self) -> None:
230 """Parse the variable.
231
232 This finds the:
233 - operator,
234 - set of safe characters,
235 - variables, and
236 - defaults.
237
238 """
239 var_list_str = self.original
240 if (operator_str := self.original[0]) in _operators:
241 self.operator = Operator.from_string(operator_str)
242 var_list_str = self.original[1:]
243
244 var_list = var_list_str.split(",")
245
246 for var in var_list:
247 default_val = None
248 name = var
249 # NOTE(sigmavirus24): This is from an earlier draft but is not in
250 # the specification
251 if "=" in var:
252 name, default_val = tuple(var.split("=", 1))
253
254 explode = name.endswith("*")
255 name = name.rstrip("*")
256
257 prefix: t.Optional[int] = None
258 if ":" in name:
259 name, prefix_str = tuple(name.split(":", 1))
260 prefix = int(prefix_str, 10)
261
262 if default_val:
263 self.defaults[name] = default_val
264
265 self.variables.append(
266 (name, {"explode": explode, "prefix": prefix})
267 )
268
269 self.variable_names = [varname for (varname, _) in self.variables]
270
271 def _query_expansion(
272 self,

Callers 1

__init__Method · 0.95

Calls 1

from_stringMethod · 0.80

Tested by

no test coverage detected