| 362 | |
| 363 | |
| 364 | class PageArgument(BaseCLIArgument): |
| 365 | type_map = { |
| 366 | 'string': str, |
| 367 | 'integer': int, |
| 368 | 'long': int, |
| 369 | } |
| 370 | |
| 371 | SHAPE_CONSTRAINT_KEYS = ('min', 'max') |
| 372 | |
| 373 | def __init__( |
| 374 | self, |
| 375 | name, |
| 376 | documentation, |
| 377 | parse_type, |
| 378 | serialized_name, |
| 379 | shape_metadata=None, |
| 380 | ): |
| 381 | shape_model = {'type': parse_type} |
| 382 | if shape_metadata: |
| 383 | for key in self.SHAPE_CONSTRAINT_KEYS: |
| 384 | if key in shape_metadata: |
| 385 | shape_model[key] = shape_metadata[key] |
| 386 | self.argument_model = model.Shape('PageArgument', shape_model) |
| 387 | self._name = name |
| 388 | self._serialized_name = serialized_name |
| 389 | self._documentation = documentation |
| 390 | self._parse_type = parse_type |
| 391 | self._required = False |
| 392 | |
| 393 | def _emit_non_positive_max_items_warning(self): |
| 394 | uni_print( |
| 395 | "warning: Non-positive values for --max-items may result in undefined behavior.\n", |
| 396 | sys.stderr, |
| 397 | ) |
| 398 | |
| 399 | @property |
| 400 | def cli_name(self): |
| 401 | return '--' + self._name |
| 402 | |
| 403 | @property |
| 404 | def cli_type_name(self): |
| 405 | return self._parse_type |
| 406 | |
| 407 | @property |
| 408 | def required(self): |
| 409 | return self._required |
| 410 | |
| 411 | @required.setter |
| 412 | def required(self, value): |
| 413 | self._required = value |
| 414 | |
| 415 | @property |
| 416 | def documentation(self): |
| 417 | return self._documentation |
| 418 | |
| 419 | def add_to_parser(self, parser): |
| 420 | parser.add_argument( |
| 421 | self.cli_name, |
no outgoing calls