| 333 | self.result.unparsed.append(token) |
| 334 | |
| 335 | def complete_context(self) -> None: |
| 336 | debug( |
| 337 | "Wrapping up context {!r}".format( |
| 338 | self.context.name if self.context else self.context |
| 339 | ) |
| 340 | ) |
| 341 | # Ensure all of context's positional args have been given. |
| 342 | if self.context and self.context.missing_positional_args: |
| 343 | err = "'{}' did not receive required positional arguments: {}" |
| 344 | names = ", ".join( |
| 345 | "'{}'".format(x.name) |
| 346 | for x in self.context.missing_positional_args |
| 347 | ) |
| 348 | self.error(err.format(self.context.name, names)) |
| 349 | if self.context and self.context not in self.result: |
| 350 | self.result.append(self.context) |
| 351 | |
| 352 | def switch_to_context(self, name: str) -> None: |
| 353 | self.context = copy.deepcopy(self.contexts[name]) |