diff options
Diffstat (limited to 'doxygen/man/man3/cmd2_Cmd.3')
-rw-r--r-- | doxygen/man/man3/cmd2_Cmd.3 | 2098 |
1 files changed, 2098 insertions, 0 deletions
diff --git a/doxygen/man/man3/cmd2_Cmd.3 b/doxygen/man/man3/cmd2_Cmd.3 new file mode 100644 index 0000000..cd5c11d --- /dev/null +++ b/doxygen/man/man3/cmd2_Cmd.3 @@ -0,0 +1,2098 @@ +.TH "cmd2::Cmd" 3 "Fri Sep 9 2011" "Cmd2" \" -*- nroff -*- +.ad l +.nh +.SH NAME +cmd2::Cmd \- +.SH SYNOPSIS +.br +.PP +.PP +Inherited by \fBexample::CmdLineApp\fP, \fBpirate6::Pirate\fP, \fBpirate7::Pirate\fP, and \fBpirate8::Pirate\fP'\&. +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "def \fB__init__\fP" +.br +.ti -1c +.RI "def \fBcmdloop\fP" +.br +.ti -1c +.RI "def \fBcolorize\fP" +.br +.ti -1c +.RI "def \fBcomplete_statement\fP" +.br +.ti -1c +.RI "def \fBdo__relative_load\fP" +.br +.ti -1c +.RI "def \fBdo_cmdenvironment\fP" +.br +.ti -1c +.RI "def \fBdo_ed\fP" +.br +.ti -1c +.RI "def \fBdo_EOF\fP" +.br +.ti -1c +.RI "def \fBdo_help\fP" +.br +.ti -1c +.RI "def \fBdo_history\fP" +.br +.ti -1c +.RI "def \fBdo_list\fP" +.br +.ti -1c +.RI "def \fBdo_load\fP" +.br +.ti -1c +.RI "def \fBdo_pause\fP" +.br +.ti -1c +.RI "def \fBdo_py\fP" +.br +.ti -1c +.RI "def \fBdo_quit\fP" +.br +.ti -1c +.RI "def \fBdo_run\fP" +.br +.ti -1c +.RI "def \fBdo_save\fP" +.br +.ti -1c +.RI "def \fBdo_set\fP" +.br +.ti -1c +.RI "def \fBdo_shell\fP" +.br +.ti -1c +.RI "def \fBdo_shortcuts\fP" +.br +.ti -1c +.RI "def \fBdo_show\fP" +.br +.ti -1c +.RI "def \fBfileimport\fP" +.br +.ti -1c +.RI "def \fBfunc_named\fP" +.br +.ti -1c +.RI "def \fBlast_matching\fP" +.br +.ti -1c +.RI "def \fBonecmd\fP" +.br +.ti -1c +.RI "def \fBonecmd_plus_hooks\fP" +.br +.ti -1c +.RI "def \fBparsed\fP" +.br +.ti -1c +.RI "def \fBperror\fP" +.br +.ti -1c +.RI "def \fBpfeedback\fP" +.br +.ti -1c +.RI "def \fBpostparse\fP" +.br +.ti -1c +.RI "def \fBpostparsing_postcmd\fP" +.br +.ti -1c +.RI "def \fBpostparsing_precmd\fP" +.br +.ti -1c +.RI "def \fBpoutput\fP" +.br +.ti -1c +.RI "def \fBpreparse\fP" +.br +.ti -1c +.RI "def \fBpseudo_raw_input\fP" +.br +.ti -1c +.RI "def \fBread_file_or_url\fP" +.br +.ti -1c +.RI "def \fBredirect_output\fP" +.br +.ti -1c +.RI "def \fBrestore_output\fP" +.br +.ti -1c +.RI "def \fBrun_commands_at_invocation\fP" +.br +.ti -1c +.RI "def \fBrunTranscriptTests\fP" +.br +.ti -1c +.RI "def \fBselect\fP" +.br +.in -1c +.SS "Public Attributes" + +.in +1c +.ti -1c +.RI "\fBblankLineTerminationParser\fP" +.br +.ti -1c +.RI "\fBblankLineTerminator\fP" +.br +.ti -1c +.RI "\fBcontinuation_prompt\fP" +.br +.ti -1c +.RI "\fBhistory\fP" +.br +.ti -1c +.RI "\fBinitial_stdout\fP" +.br +.ti -1c +.RI "\fBinputParser\fP" +.br +.ti -1c +.RI "\fBintro\fP" +.br +.ti -1c +.RI "\fBkept_sys\fP" +.br +.ti -1c +.RI "\fBkeywords\fP" +.br +.ti -1c +.RI "\fBlastcmd\fP" +.br +.ti -1c +.RI "\fBmultilineCommand\fP" +.br +.ti -1c +.RI "\fBmultilineParser\fP" +.br +.ti -1c +.RI "\fBold_completer\fP" +.br +.ti -1c +.RI "\fBparser\fP" +.br +.ti -1c +.RI "\fBprompt\fP" +.br +.ti -1c +.RI "\fBpystate\fP" +.br +.ti -1c +.RI "\fBredirect\fP" +.br +.ti -1c +.RI "\fBshortcuts\fP" +.br +.ti -1c +.RI "\fBsingleLineParser\fP" +.br +.ti -1c +.RI "\fBstdin\fP" +.br +.ti -1c +.RI "\fBstdout\fP" +.br +.ti -1c +.RI "\fBuse_rawinput\fP" +.br +.in -1c +.SS "Static Public Attributes" + +.in +1c +.ti -1c +.RI "\fBabbrev\fP = True" +.br +.ti -1c +.RI "\fBblankLinesAllowed\fP = False" +.br +.ti -1c +.RI "\fBcase_insensitive\fP = True" +.br +.ti -1c +.RI "dictionary \fBcolorcodes\fP" +.br +.ti -1c +.RI "tuple \fBcolors\fP = (platform\&.system() != 'Windows')" +.br +.ti -1c +.RI "tuple \fBcommentGrammars\fP = pyparsing\&.Or([pyparsing\&.pythonStyleComment, pyparsing\&.cStyleComment])" +.br +.ti -1c +.RI "tuple \fBcommentInProgress\fP = pyparsing\&.Literal('/*')" +.br +.ti -1c +.RI "string \fBcontinuation_prompt\fP = '> '" +.br +.ti -1c +.RI "\fBcurrent_script_dir\fP = None" +.br +.ti -1c +.RI "\fBdebug\fP = False" +.br +.ti -1c +.RI "string \fBdefault_file_name\fP = 'command\&.txt'" +.br +.ti -1c +.RI "\fBdefault_to_shell\fP = False" +.br +.ti -1c +.RI "string \fBdefaultExtension\fP = 'txt'" +.br +.ti -1c +.RI "\fBdo__load\fP = do_load" +.br +.ti -1c +.RI "\fBdo_edit\fP = do_ed" +.br +.ti -1c +.RI "\fBdo_eof\fP = do_EOF" +.br +.ti -1c +.RI "\fBdo_exit\fP = do_quit" +.br +.ti -1c +.RI "\fBdo_hi\fP = do_history" +.br +.ti -1c +.RI "\fBdo_l\fP = do_list" +.br +.ti -1c +.RI "\fBdo_li\fP = do_list" +.br +.ti -1c +.RI "\fBdo_q\fP = do_quit" +.br +.ti -1c +.RI "\fBdo_r\fP = do_run" +.br +.ti -1c +.RI "\fBecho\fP = False" +.br +.ti -1c +.RI "tuple \fBeditor\fP = os\&.environ\&.get('EDITOR')" +.br +.ti -1c +.RI "string \fBeditor\fP = 'notepad'" +.br +.ti -1c +.RI "string \fBexcludeFromHistory\fP = '''run r list l \fBhistory\fP hi ed edit li eof'''" +.br +.ti -1c +.RI "\fBfeedback_to_output\fP = False" +.br +.ti -1c +.RI "string \fBhelp\fP = 'describe function of parameter'" +.br +.ti -1c +.RI "\fBkept_state\fP = None" +.br +.ti -1c +.RI "string \fBlegalChars\fP = u'!#$%\&.:?@_'" +.br +.ti -1c +.RI "\fBlocals_in_py\fP = True" +.br +.ti -1c +.RI "list \fBmultilineCommands\fP = []" +.br +.ti -1c +.RI "string \fBnoSpecialParse\fP = 'set ed edit exit'" +.br +.ti -1c +.RI "tuple \fBprefixParser\fP = pyparsing\&.Empty()" +.br +.ti -1c +.RI "\fBquiet\fP = False" +.br +.ti -1c +.RI "string \fBredirector\fP = '>'" +.br +.ti -1c +.RI "list \fBreserved_words\fP = []" +.br +.ti -1c +.RI "tuple \fBsaveparser\fP" +.br +.ti -1c +.RI "tuple \fBsettable\fP" +.br +.ti -1c +.RI "dictionary \fBshortcuts\fP = {'?': '\fBhelp\fP', '!': 'shell', '@': 'load', '@@': '_relative_load'}" +.br +.ti -1c +.RI "list \fBterminators\fP = [';']" +.br +.ti -1c +.RI "\fBtiming\fP = False" +.br +.ti -1c +.RI "tuple \fBurlre\fP = re\&.compile('(https?://[-\\\\w\\\\\&./]+)')" +.br +.in -1c +.SS "Private Member Functions" + +.in +1c +.ti -1c +.RI "def \fB_cmdloop\fP" +.br +.ti -1c +.RI "def \fB_default\fP" +.br +.ti -1c +.RI "def \fB_init_parser\fP" +.br +.in -1c +.SS "Static Private Attributes" + +.in +1c +.ti -1c +.RI "\fB_STOP_AND_EXIT\fP = True" +.br +.ti -1c +.RI "int \fB_STOP_SCRIPT_NO_EXIT\fP = 999" +.br +.in -1c +.SH "Detailed Description" +.PP +Definition at line 361 of file cmd2\&.py'\&. +.SH "Constructor & Destructor Documentation" +.PP +.SS "def cmd2::Cmd::__init__ (self, args, kwargs)" +.PP +Definition at line 469 of file cmd2\&.py'\&. +.PP +.nf +469 +470 def __init__(self, *args, **kwargs): +471 cmd\&.Cmd\&.__init__(self, *args, **kwargs) +472 self\&.initial_stdout = sys\&.stdout +473 self\&.history = History() +474 self\&.pystate = {} +475 self\&.shortcuts = sorted(self\&.shortcuts\&.items(), reverse=True) +476 self\&.keywords = self\&.reserved_words + [fname[3:] for fname in dir(self) +477 if fname\&.startswith('do_')] +478 self\&._init_parser() + +.fi +.SH "Member Function Documentation" +.PP +.SS "def cmd2::Cmd::_cmdloop (self, intro = \fCNone\fP)\fC [private]\fP".PP +.nf +Repeatedly issue a prompt, accept input, parse an initial prefix +off the received input, and dispatch to action methods, passing them +the remainder of the line as argument. +.fi +.PP + +.PP +Definition at line 895 of file cmd2\&.py'\&. +.PP +Referenced by cmdloop()\&. +.PP +.nf +895 +896 def _cmdloop(self, intro=None): +897 '''Repeatedly issue a prompt, accept input, parse an initial prefix +898 off the received input, and dispatch to action methods, passing them +899 the remainder of the line as argument\&. +900 ''' +901 +902 # An almost perfect copy from Cmd; however, the pseudo_raw_input portion +903 # has been split out so that it can be called separately +904 +905 self\&.preloop() +906 if self\&.use_rawinput and self\&.completekey: +907 try: +908 import readline +909 self\&.old_completer = readline\&.get_completer() +910 readline\&.set_completer(self\&.complete) +911 readline\&.parse_and_bind(self\&.completekey+': complete') +912 except ImportError: +913 pass +914 try: +915 if intro is not None: +916 self\&.intro = intro +917 if self\&.intro: +918 self\&.stdout\&.write(str(self\&.intro)+'\n') +919 stop = None +920 while not stop: +921 if self\&.cmdqueue: +922 line = self\&.cmdqueue\&.pop(0) +923 else: +924 line = self\&.pseudo_raw_input(self\&.prompt) +925 if (self\&.echo) and (isinstance(self\&.stdin, file)): +926 self\&.stdout\&.write(line + '\n') +927 stop = self\&.onecmd_plus_hooks(line) +928 self\&.postloop() +929 finally: +930 if self\&.use_rawinput and self\&.completekey: +931 try: +932 import readline +933 readline\&.set_completer(self\&.old_completer) +934 except ImportError: +935 pass +936 return stop + +.fi +.SS "def cmd2::Cmd::_default (self, statement)\fC [private]\fP" +.PP +Definition at line 868 of file cmd2\&.py'\&. +.PP +References pirate6::Pirate::default(), pirate8::Pirate::default(), pirate7::Pirate::default(), default_to_shell, and postparsing_postcmd()\&. +.PP +.nf +868 +869 def _default(self, statement): +870 arg = statement\&.full_parsed_statement() +871 if self\&.default_to_shell: +872 result = os\&.system(arg) +873 if not result: +874 return self\&.postparsing_postcmd(None) +875 return self\&.postparsing_postcmd(self\&.default(arg)) + +.fi +.SS "def cmd2::Cmd::_init_parser (self)\fC [private]\fP" +.PP +Definition at line 493 of file cmd2\&.py'\&. +.PP +.nf +493 +494 def _init_parser(self): +495 r''' +496 >>> c = Cmd() +497 >>> c\&.multilineCommands = ['multiline'] +498 >>> c\&.case_insensitive = True +499 >>> c\&._init_parser() +500 >>> print (c\&.parser\&.parseString('')\&.dump()) +501 [] +502 >>> print (c\&.parser\&.parseString('')\&.dump()) +503 [] +504 >>> print (c\&.parser\&.parseString('/* empty command */')\&.dump()) +505 [] +506 >>> print (c\&.parser\&.parseString('plainword')\&.dump()) +507 ['plainword', ''] +508 - command: plainword +509 - statement: ['plainword', ''] +510 - command: plainword +511 >>> print (c\&.parser\&.parseString('termbare;')\&.dump()) +512 ['termbare', '', ';', ''] +513 - command: termbare +514 - statement: ['termbare', '', ';'] +515 - command: termbare +516 - terminator: ; +517 - terminator: ; +518 >>> print (c\&.parser\&.parseString('termbare; suffx')\&.dump()) +519 ['termbare', '', ';', 'suffx'] +520 - command: termbare +521 - statement: ['termbare', '', ';'] +522 - command: termbare +523 - terminator: ; +524 - suffix: suffx +525 - terminator: ; +526 >>> print (c\&.parser\&.parseString('barecommand')\&.dump()) +527 ['barecommand', ''] +528 - command: barecommand +529 - statement: ['barecommand', ''] +530 - command: barecommand +531 >>> print (c\&.parser\&.parseString('COMmand with args')\&.dump()) +532 ['command', 'with args'] +533 - args: with args +534 - command: command +535 - statement: ['command', 'with args'] +536 - args: with args +537 - command: command +538 >>> print (c\&.parser\&.parseString('command with args and terminator; and suffix')\&.dump()) +539 ['command', 'with args and terminator', ';', 'and suffix'] +540 - args: with args and terminator +541 - command: command +542 - statement: ['command', 'with args and terminator', ';'] +543 - args: with args and terminator +544 - command: command +545 - terminator: ; +546 - suffix: and suffix +547 - terminator: ; +548 >>> print (c\&.parser\&.parseString('simple | piped')\&.dump()) +549 ['simple', '', '|', ' piped'] +550 - command: simple +551 - pipeTo: piped +552 - statement: ['simple', ''] +553 - command: simple +554 >>> print (c\&.parser\&.parseString('double-pipe || is not a pipe')\&.dump()) +555 ['double', '-pipe || is not a pipe'] +556 - args: -pipe || is not a pipe +557 - command: double +558 - statement: ['double', '-pipe || is not a pipe'] +559 - args: -pipe || is not a pipe +560 - command: double +561 >>> print (c\&.parser\&.parseString('command with args, terminator;sufx | piped')\&.dump()) +562 ['command', 'with args, terminator', ';', 'sufx', '|', ' piped'] +563 - args: with args, terminator +564 - command: command +565 - pipeTo: piped +566 - statement: ['command', 'with args, terminator', ';'] +567 - args: with args, terminator +568 - command: command +569 - terminator: ; +570 - suffix: sufx +571 - terminator: ; +572 >>> print (c\&.parser\&.parseString('output into > afile\&.txt')\&.dump()) +573 ['output', 'into', '>', 'afile\&.txt'] +574 - args: into +575 - command: output +576 - output: > +577 - outputTo: afile\&.txt +578 - statement: ['output', 'into'] +579 - args: into +580 - command: output +581 >>> print (c\&.parser\&.parseString('output into;sufx | pipethrume plz > afile\&.txt')\&.dump()) +582 ['output', 'into', ';', 'sufx', '|', ' pipethrume plz', '>', 'afile\&.txt'] +583 - args: into +584 - command: output +585 - output: > +586 - outputTo: afile\&.txt +587 - pipeTo: pipethrume plz +588 - statement: ['output', 'into', ';'] +589 - args: into +590 - command: output +591 - terminator: ; +592 - suffix: sufx +593 - terminator: ; +594 >>> print (c\&.parser\&.parseString('output to paste buffer >> ')\&.dump()) +595 ['output', 'to paste buffer', '>>', ''] +596 - args: to paste buffer +597 - command: output +598 - output: >> +599 - statement: ['output', 'to paste buffer'] +600 - args: to paste buffer +601 - command: output +602 >>> print (c\&.parser\&.parseString('ignore the /* commented | > */ stuff;')\&.dump()) +603 ['ignore', 'the /* commented | > */ stuff', ';', ''] +604 - args: the /* commented | > */ stuff +605 - command: ignore +606 - statement: ['ignore', 'the /* commented | > */ stuff', ';'] +607 - args: the /* commented | > */ stuff +608 - command: ignore +609 - terminator: ; +610 - terminator: ; +611 >>> print (c\&.parser\&.parseString('has > inside;')\&.dump()) +612 ['has', '> inside', ';', ''] +613 - args: > inside +614 - command: has +615 - statement: ['has', '> inside', ';'] +616 - args: > inside +617 - command: has +618 - terminator: ; +619 - terminator: ; +620 >>> print (c\&.parser\&.parseString('multiline has > inside an unfinished command')\&.dump()) +621 ['multiline', ' has > inside an unfinished command'] +622 - multilineCommand: multiline +623 >>> print (c\&.parser\&.parseString('multiline has > inside;')\&.dump()) +624 ['multiline', 'has > inside', ';', ''] +625 - args: has > inside +626 - multilineCommand: multiline +627 - statement: ['multiline', 'has > inside', ';'] +628 - args: has > inside +629 - multilineCommand: multiline +630 - terminator: ; +631 - terminator: ; +632 >>> print (c\&.parser\&.parseString('multiline command /* with comment in progress;')\&.dump()) +633 ['multiline', ' command /* with comment in progress;'] +634 - multilineCommand: multiline +635 >>> print (c\&.parser\&.parseString('multiline command /* with comment complete */ is done;')\&.dump()) +636 ['multiline', 'command /* with comment complete */ is done', ';', ''] +637 - args: command /* with comment complete */ is done +638 - multilineCommand: multiline +639 - statement: ['multiline', 'command /* with comment complete */ is done', ';'] +640 - args: command /* with comment complete */ is done +641 - multilineCommand: multiline +642 - terminator: ; +643 - terminator: ; +644 >>> print (c\&.parser\&.parseString('multiline command ends\n\n')\&.dump()) +645 ['multiline', 'command ends', '\n', '\n'] +646 - args: command ends +647 - multilineCommand: multiline +648 - statement: ['multiline', 'command ends', '\n', '\n'] +649 - args: command ends +650 - multilineCommand: multiline +651 - terminator: ['\n', '\n'] +652 - terminator: ['\n', '\n'] +653 >>> print (c\&.parser\&.parseString('multiline command 'with term; ends' now\n\n')\&.dump()) +654 ['multiline', 'command 'with term; ends' now', '\n', '\n'] +655 - args: command 'with term; ends' now +656 - multilineCommand: multiline +657 - statement: ['multiline', 'command 'with term; ends' now', '\n', '\n'] +658 - args: command 'with term; ends' now +659 - multilineCommand: multiline +660 - terminator: ['\n', '\n'] +661 - terminator: ['\n', '\n'] +662 >>> print (c\&.parser\&.parseString('what if 'quoted strings /* seem to ' start comments?')\&.dump()) +663 ['what', 'if 'quoted strings /* seem to ' start comments?'] +664 - args: if 'quoted strings /* seem to ' start comments? +665 - command: what +666 - statement: ['what', 'if 'quoted strings /* seem to ' start comments?'] +667 - args: if 'quoted strings /* seem to ' start comments? +668 - command: what +669 ''' +670 #outputParser = (pyparsing\&.Literal('>>') | (pyparsing\&.WordStart() + '>') | pyparsing\&.Regex('[^=]>'))('output') +671 outputParser = (pyparsing\&.Literal(self\&.redirector *2) | \ +672 (pyparsing\&.WordStart() + self\&.redirector) | \ +673 pyparsing\&.Regex('[^=]' + self\&.redirector))('output') +674 +675 terminatorParser = pyparsing\&.Or([(hasattr(t, 'parseString') and t) or pyparsing\&.Literal(t) for t in self\&.terminators])('terminator') +676 stringEnd = pyparsing\&.stringEnd ^ '\nEOF' +677 self\&.multilineCommand = pyparsing\&.Or([pyparsing\&.Keyword(c, caseless=self\&.case_insensitive) for c in self\&.multilineCommands])('multilineCommand') +678 oneLineCommand = (~self\&.multilineCommand + pyparsing\&.Word(self\&.legalChars))('command') +679 pipe = pyparsing\&.Keyword('|', identChars='|') +680 self\&.commentGrammars\&.ignore(pyparsing\&.quotedString)\&.setParseAction(lambda x: '') +681 doNotParse = self\&.commentGrammars | self\&.commentInProgress | pyparsing\&.quotedString +682 afterElements = \ +683 pyparsing\&.Optional(pipe + pyparsing\&.SkipTo(outputParser ^ stringEnd, ignore=doNotParse)('pipeTo')) + \ +684 pyparsing\&.Optional(outputParser + pyparsing\&.SkipTo(stringEnd, ignore=doNotParse)\&.setParseAction(lambda x: x[0]\&.strip())('outputTo')) +685 if self\&.case_insensitive: +686 self\&.multilineCommand\&.setParseAction(lambda x: x[0]\&.lower()) +687 oneLineCommand\&.setParseAction(lambda x: x[0]\&.lower()) +688 if self\&.blankLinesAllowed: +689 self\&.blankLineTerminationParser = pyparsing\&.NoMatch +690 else: +691 self\&.blankLineTerminator = (pyparsing\&.lineEnd + pyparsing\&.lineEnd)('terminator') +692 self\&.blankLineTerminator\&.setResultsName('terminator') +693 self\&.blankLineTerminationParser = ((self\&.multilineCommand ^ oneLineCommand) + pyparsing\&.SkipTo(self\&.blankLineTerminator, ignore=doNotParse)\&.setParseAction(lambda x: x[0]\&.strip())('args') + self\&.blankLineTerminator)('statement') +694 self\&.multilineParser = (((self\&.multilineCommand ^ oneLineCommand) + pyparsing\&.SkipTo(terminatorParser, ignore=doNotParse)\&.setParseAction(lambda x: x[0]\&.strip())('args') + terminatorParser)('statement') + +695 pyparsing\&.SkipTo(outputParser ^ pipe ^ stringEnd, ignore=doNotParse)\&.setParseAction(lambda x: x[0]\&.strip())('suffix') + afterElements) +696 self\&.multilineParser\&.ignore(self\&.commentInProgress) +697 self\&.singleLineParser = ((oneLineCommand + pyparsing\&.SkipTo(terminatorParser ^ stringEnd ^ pipe ^ outputParser, ignore=doNotParse)\&.setParseAction(lambda x:x[0]\&.strip())('args'))('statement') + +698 pyparsing\&.Optional(terminatorParser) + afterElements) +699 #self\&.multilineParser = self\&.multilineParser\&.setResultsName('multilineParser') +700 #self\&.singleLineParser = self\&.singleLineParser\&.setResultsName('singleLineParser') +701 self\&.blankLineTerminationParser = self\&.blankLineTerminationParser\&.setResultsName('statement') +702 self\&.parser = self\&.prefixParser + ( +703 stringEnd | +704 self\&.multilineParser | +705 self\&.singleLineParser | +706 self\&.blankLineTerminationParser | +707 self\&.multilineCommand + pyparsing\&.SkipTo(stringEnd, ignore=doNotParse) +708 ) +709 self\&.parser\&.ignore(self\&.commentGrammars) +710 +711 inputMark = pyparsing\&.Literal('<') +712 inputMark\&.setParseAction(lambda x: '') +713 fileName = pyparsing\&.Word(self\&.legalChars + '/\\') +714 inputFrom = fileName('inputFrom') +715 inputFrom\&.setParseAction(replace_with_file_contents) +716 # a not-entirely-satisfactory way of distinguishing < as in 'import from' from < +717 # as in 'lesser than' +718 self\&.inputParser = inputMark + pyparsing\&.Optional(inputFrom) + pyparsing\&.Optional('>') + \ +719 pyparsing\&.Optional(fileName) + (pyparsing\&.stringEnd | '|') +720 self\&.inputParser\&.ignore(self\&.commentInProgress) + +.fi +.SS "def cmd2::Cmd::cmdloop (self)" +.PP +Definition at line 1283 of file cmd2\&.py'\&. +.PP +References _cmdloop(), run_commands_at_invocation(), and runTranscriptTests()\&. +.PP +.nf +1283 +1284 def cmdloop(self): +1285 parser = optparse\&.OptionParser() +1286 parser\&.add_option('-t', '--test', dest='test', +1287 action='store_true', +1288 help='Test against transcript(s) in FILE (wildcards OK)') +1289 (callopts, callargs) = parser\&.parse_args() +1290 if callopts\&.test: +1291 self\&.runTranscriptTests(callargs) +1292 else: +1293 if not self\&.run_commands_at_invocation(callargs): +1294 self\&._cmdloop() + +.fi +.SS "def cmd2::Cmd::colorize (self, val, color)".PP +.nf +Given a string (``val``), returns that string wrapped in UNIX-style + special characters that turn on (and then off) text color and style. + If the ``colors`` environment paramter is ``False``, or the application + is running on Windows, will return ``val`` unchanged. + ``color`` should be one of the supported strings (or styles): + red/blue/green/cyan/magenta, bold, underline.fi +.PP + +.PP +Definition at line 435 of file cmd2\&.py'\&. +.PP +Referenced by pirate7::Pirate::do_sing(), and pirate8::Pirate::do_sing()\&. +.PP +.nf +435 +436 def colorize(self, val, color): +437 '''Given a string (``val``), returns that string wrapped in UNIX-style +438 special characters that turn on (and then off) text color and style\&. +439 If the ``colors`` environment paramter is ``False``, or the application +440 is running on Windows, will return ``val`` unchanged\&. +441 ``color`` should be one of the supported strings (or styles): +442 red/blue/green/cyan/magenta, bold, underline''' +443 if self\&.colors and (self\&.stdout == self\&.initial_stdout): +444 return self\&.colorcodes[color][True] + val + self\&.colorcodes[color][False] +445 return val + +.fi +.SS "def cmd2::Cmd::complete_statement (self, line)".PP +.nf +Keep accepting lines of input until the command is complete..fi +.PP + +.PP +Definition at line 794 of file cmd2\&.py'\&. +.PP +References commentGrammars, continuation_prompt, parsed(), and pseudo_raw_input()\&. +.PP +Referenced by onecmd_plus_hooks()\&. +.PP +.nf +794 +795 def complete_statement(self, line): +796 '''Keep accepting lines of input until the command is complete\&.''' +797 if (not line) or ( +798 not pyparsing\&.Or(self\&.commentGrammars)\&. +799 setParseAction(lambda x: '')\&.transformString(line)): +800 raise EmptyStatement +801 statement = self\&.parsed(line) +802 while statement\&.parsed\&.multilineCommand and (statement\&.parsed\&.terminator == ''): +803 statement = '%s\n%s' % (statement\&.parsed\&.raw, +804 self\&.pseudo_raw_input(self\&.continuation_prompt)) +805 statement = self\&.parsed(statement) +806 if not statement\&.parsed\&.command: +807 raise EmptyStatement +808 return statement + +.fi +.SS "def cmd2::Cmd::do__relative_load (self, arg = \fCNone\fP)".PP +.nf + +Runs commands in script at file or URL; if this is called from within an +already-running script, the filename will be interpreted relative to the +already-running script's directory..fi +.PP + +.PP +Definition at line 1206 of file cmd2\&.py'\&. +.PP +References current_script_dir, and do__load\&. +.PP +.nf +1206 +1207 def do__relative_load(self, arg=None): +1208 ''' +1209 Runs commands in script at file or URL; if this is called from within an +1210 already-running script, the filename will be interpreted relative to the +1211 already-running script's directory\&.''' +1212 if arg: +1213 arg = arg\&.split(None, 1) +1214 targetname, args = arg[0], (arg[1:] or [''])[0] +1215 targetname = os\&.path\&.join(self\&.current_script_dir or '', targetname) +1216 self\&.do__load('%s %s' % (targetname, args)) + +.fi +.SS "def cmd2::Cmd::do_cmdenvironment (self, args)".PP +.nf +Summary report of interactive parameters..fi +.PP + +.PP +Definition at line 446 of file cmd2\&.py'\&. +.PP +References case_insensitive, settable, and terminators\&. +.PP +.nf +446 +447 def do_cmdenvironment(self, args): +448 '''Summary report of interactive parameters\&.''' +449 self\&.stdout\&.write(''' +450 Commands are %(casesensitive)scase-sensitive\&. +451 Commands may be terminated with: %(terminators)s +452 Settable parameters: %(settable)s\n''' % \ +453 { 'casesensitive': (self\&.case_insensitive and 'not ') or '', +454 'terminators': str(self\&.terminators), +455 'settable': ' '\&.join(self\&.settable) +456 }) + +.fi +.SS "def cmd2::Cmd::do_ed (self, arg)".PP +.nf +ed: edit most recent command in text editor +ed [N]: edit numbered command from history +ed [filename]: edit specified file name + +commands are run after editor is closed. +"set edit (program-name)" or set EDITOR environment variable +to control which editing program is used..fi +.PP + +.PP +Definition at line 1128 of file cmd2\&.py'\&. +.PP +References default_file_name, do__load, editor, history, and last_matching()\&. +.PP +.nf +1128 +1129 def do_ed(self, arg): +1130 '''ed: edit most recent command in text editor +1131 ed [N]: edit numbered command from history +1132 ed [filename]: edit specified file name +1133 +1134 commands are run after editor is closed\&. +1135 'set edit (program-name)' or set EDITOR environment variable +1136 to control which editing program is used\&.''' +1137 if not self\&.editor: +1138 raise EnvironmentError('Please use 'set editor' to specify your text editing program of choice\&.') +1139 filename = self\&.default_file_name +1140 if arg: +1141 try: +1142 buffer = self\&.last_matching(int(arg)) +1143 except ValueError: +1144 filename = arg +1145 buffer = '' +1146 else: +1147 buffer = self\&.history[-1] +1148 +1149 if buffer: +1150 f = open(os\&.path\&.expanduser(filename), 'w') +1151 f\&.write(buffer or '') +1152 f\&.close() +1153 +1154 os\&.system('%s %s' % (self\&.editor, filename)) + self\&.do__load(filename) +.fi +.SS "def cmd2::Cmd::do_EOF (self, arg)" +.PP +Definition at line 937 of file cmd2\&.py'\&. +.PP +References _STOP_SCRIPT_NO_EXIT\&. +.PP +.nf +937 +938 def do_EOF(self, arg): + return self\&._STOP_SCRIPT_NO_EXIT # End of script; should not exit app +.fi +.SS "def cmd2::Cmd::do_help (self, arg)" +.PP +Definition at line 457 of file cmd2\&.py'\&. +.PP +References func_named(), and stdout\&. +.PP +.nf +457 +458 def do_help(self, arg): +459 if arg: +460 funcname = self\&.func_named(arg) +461 if funcname: +462 fn = getattr(self, funcname) +463 try: +464 fn\&.optionParser\&.print_help(file=self\&.stdout) +465 except AttributeError: +466 cmd\&.Cmd\&.do_help(self, funcname[3:]) +467 else: +468 cmd\&.Cmd\&.do_help(self, arg) + +.fi +.SS "def cmd2::Cmd::do_history (self, arg, opts)".PP +.nf +history [arg]: lists past commands issued + +| no arg: list all +| arg is integer: list one history item, by index +| arg is string: string search +| arg is /enclosed in forward-slashes/: regular expression search +.fi +.PP + +.PP +Definition at line 1083 of file cmd2\&.py'\&. +.PP +References history, and poutput()\&. +.PP +.nf +1083 +1084 def do_history(self, arg, opts): +1085 '''history [arg]: lists past commands issued +1086 +1087 | no arg: list all +1088 | arg is integer: list one history item, by index +1089 | arg is string: string search +1090 | arg is /enclosed in forward-slashes/: regular expression search +1091 ''' +1092 if arg: +1093 history = self\&.history\&.get(arg) +1094 else: +1095 history = self\&.history +1096 for hi in history: +1097 if opts\&.script: +1098 self\&.poutput(hi) +1099 else: + self\&.stdout\&.write(hi\&.pr()) +.fi +.SS "def cmd2::Cmd::do_list (self, arg)".PP +.nf +list [arg]: lists last command issued + +no arg -> list most recent command +arg is integer -> list one history item, by index +a..b, a:b, a:, ..b -> list spans from a (or start) to b (or end) +arg is string -> list all commands matching string search +arg is /enclosed in forward-slashes/ -> regular expression search +.fi +.PP + +.PP +Definition at line 1108 of file cmd2\&.py'\&. +.PP +References poutput()\&. +.PP +.nf +1108 +1109 def do_list(self, arg): +1110 '''list [arg]: lists last command issued +1111 +1112 no arg -> list most recent command +1113 arg is integer -> list one history item, by index +1114 a\&.\&.b, a:b, a:, \&.\&.b -> list spans from a (or start) to b (or end) +1115 arg is string -> list all commands matching string search +1116 arg is /enclosed in forward-slashes/ -> regular expression search +1117 ''' +1118 try: +1119 history = self\&.history\&.span(arg or '-1') +1120 except IndexError: +1121 history = self\&.history\&.search(arg) +1122 for hi in history: +1123 self\&.poutput(hi\&.pr()) + +.fi +.SS "def cmd2::Cmd::do_load (self, arg = \fCNone\fP)".PP +.nf +Runs script of command(s) from a file or URL..fi +.PP + +.PP +Definition at line 1218 of file cmd2\&.py'\&. +.PP +.nf +1218 +1219 def do_load(self, arg=None): +1220 '''Runs script of command(s) from a file or URL\&.''' +1221 if arg is None: +1222 targetname = self\&.default_file_name +1223 else: +1224 arg = arg\&.split(None, 1) +1225 targetname, args = arg[0], (arg[1:] or [''])[0]\&.strip() +1226 try: +1227 target = self\&.read_file_or_url(targetname) +1228 except IOError, e: +1229 self\&.perror('Problem accessing script from %s: \n%s' % (targetname, e)) +1230 return +1231 keepstate = Statekeeper(self, ('stdin','use_rawinput','prompt', +1232 'continuation_prompt','current_script_dir')) +1233 self\&.stdin = target +1234 self\&.use_rawinput = False +1235 self\&.prompt = self\&.continuation_prompt = '' +1236 self\&.current_script_dir = os\&.path\&.split(targetname)[0] +1237 stop = self\&._cmdloop() +1238 self\&.stdin\&.close() +1239 keepstate\&.restore() +1240 self\&.lastcmd = '' + return stop and (stop != self\&._STOP_SCRIPT_NO_EXIT) +.fi +.SS "def cmd2::Cmd::do_pause (self, arg)" +.PP +Definition at line 1031 of file cmd2\&.py'\&. +.PP +.nf +1031 +1032 def do_pause(self, arg): +1033 'Displays the specified text then waits for the user to press RETURN\&.' +1034 raw_input(arg + '\n') + +.fi +.SS "def cmd2::Cmd::do_py (self, arg)".PP +.nf + +py <command>: Executes a Python command. +py: Enters interactive Python mode. +End with ``Ctrl-D`` (Unix) / ``Ctrl-Z`` (Windows), ``quit()``, '`exit()``. +Non-python commands can be issued with ``cmd("your command")``. +Run python code from external files with ``run("filename.py")`` +.fi +.PP + +.PP +Definition at line 1039 of file cmd2\&.py'\&. +.PP +References do_py(), locals_in_py, onecmd_plus_hooks(), cmd2::options(), perror(), pystate, stdin, and stdout\&. +.PP +Referenced by do_py()\&. +.PP +.nf +1039 +1040 def do_py(self, arg): +1041 ''' +1042 py <command>: Executes a Python command\&. +1043 py: Enters interactive Python mode\&. +1044 End with ``Ctrl-D`` (Unix) / ``Ctrl-Z`` (Windows), ``quit()``, '`exit()``\&. +1045 Non-python commands can be issued with ``cmd('your command')``\&. +1046 Run python code from external files with ``run('filename\&.py')`` +1047 ''' +1048 self\&.pystate['self'] = self +1049 arg = arg\&.parsed\&.raw[2:]\&.strip() +1050 localvars = (self\&.locals_in_py and self\&.pystate) or {} +1051 interp = InteractiveConsole(locals=localvars) +1052 interp\&.runcode('import sys, os;sys\&.path\&.insert(0, os\&.getcwd())') +1053 if arg\&.strip(): +1054 interp\&.runcode(arg) +1055 else: +1056 def quit(): +1057 raise EmbeddedConsoleExit +1058 def onecmd_plus_hooks(arg): +1059 return self\&.onecmd_plus_hooks(arg + '\n') +1060 def run(arg): +1061 try: +1062 file = open(arg) +1063 interp\&.runcode(file\&.read()) +1064 file\&.close() +1065 except IOError, e: +1066 self\&.perror(e) +1067 self\&.pystate['quit'] = quit +1068 self\&.pystate['exit'] = quit +1069 self\&.pystate['cmd'] = onecmd_plus_hooks +1070 self\&.pystate['run'] = run +1071 try: +1072 cprt = 'Type 'help', 'copyright', 'credits' or 'license' for more information\&.' +1073 keepstate = Statekeeper(sys, ('stdin','stdout')) +1074 sys\&.stdout = self\&.stdout +1075 sys\&.stdin = self\&.stdin +1076 interp\&.interact(banner= 'Python %s on %s\n%s\n(%s)\n%s' % +1077 (sys\&.version, sys\&.platform, cprt, self\&.__class__\&.__name__, self\&.do_py\&.__doc__)) +1078 except EmbeddedConsoleExit: +1079 pass +1080 keepstate\&.restore() + +.fi +.SS "def cmd2::Cmd::do_quit (self, arg)" +.PP +Reimplemented in \fBpirate6::Pirate\fP, \fBpirate7::Pirate\fP, and \fBpirate8::Pirate\fP'\&. +.PP +Definition at line 941 of file cmd2\&.py'\&. +.PP +References _STOP_AND_EXIT\&. +.PP +.nf +941 +942 def do_quit(self, arg): + return self\&._STOP_AND_EXIT +.fi +.SS "def cmd2::Cmd::do_run (self, arg)".PP +.nf +run [arg]: re-runs an earlier command + +no arg -> run most recent command +arg is integer -> run one history item, by index +arg is string -> run most recent command by string search +arg is /enclosed in forward-slashes/ -> run most recent by regex +.fi +.PP + +.PP +Definition at line 1243 of file cmd2\&.py'\&. +.PP +References last_matching(), onecmd_plus_hooks(), and pfeedback()\&. +.PP +.nf +1243 +1244 def do_run(self, arg): +1245 '''run [arg]: re-runs an earlier command +1246 +1247 no arg -> run most recent command +1248 arg is integer -> run one history item, by index +1249 arg is string -> run most recent command by string search +1250 arg is /enclosed in forward-slashes/ -> run most recent by regex +1251 ''' +1252 'run [N]: runs the SQL that was run N commands ago' +1253 runme = self\&.last_matching(arg) +1254 self\&.pfeedback(runme) +1255 if runme: + stop = self\&.onecmd_plus_hooks(runme) +.fi +.SS "def cmd2::Cmd::do_save (self, arg)".PP +.nf +`save [N] [filename.ext]` + +Saves command from history to file. + +| N => Number of command (from history), or `*`; +| most recent command if omitted.fi +.PP + +.PP +Definition at line 1160 of file cmd2\&.py'\&. +.PP +References default_file_name, do_save(), history, perror(), and pfeedback()\&. +.PP +Referenced by do_save()\&. +.PP +.nf +1160 +1161 def do_save(self, arg): +1162 '''`save [N] [filename\&.ext]` +1163 +1164 Saves command from history to file\&. +1165 +1166 | N => Number of command (from history), or `*`; +1167 | most recent command if omitted''' +1168 +1169 try: +1170 args = self\&.saveparser\&.parseString(arg) +1171 except pyparsing\&.ParseException: +1172 self\&.perror('Could not understand save target %s' % arg) +1173 raise SyntaxError(self\&.do_save\&.__doc__) +1174 fname = args\&.fname or self\&.default_file_name +1175 if args\&.idx == '*': +1176 saveme = '\n\n'\&.join(self\&.history[:]) +1177 elif args\&.idx: +1178 saveme = self\&.history[int(args\&.idx)-1] +1179 else: +1180 saveme = self\&.history[-1] +1181 try: +1182 f = open(os\&.path\&.expanduser(fname), 'w') +1183 f\&.write(saveme) +1184 f\&.close() +1185 self\&.pfeedback('Saved to %s' % (fname)) +1186 except Exception, e: +1187 self\&.perror('Error saving %s' % (fname)) +1188 raise + +.fi +.SS "def cmd2::Cmd::do_set (self, arg)".PP +.nf + +Sets a cmd2 parameter. Accepts abbreviated parameter names so long +as there is no ambiguity. Call without arguments for a list of +settable parameters with their values..fi +.PP + +.PP +Definition at line 1000 of file cmd2\&.py'\&. +.PP +References cmd2::cast(), do_show(), and settable\&. +.PP +.nf +1000 +1001 def do_set(self, arg): +1002 ''' +1003 Sets a cmd2 parameter\&. Accepts abbreviated parameter names so long +1004 as there is no ambiguity\&. Call without arguments for a list of +1005 settable parameters with their values\&.''' +1006 try: +1007 statement, paramName, val = arg\&.parsed\&.raw\&.split(None, 2) +1008 val = val\&.strip() +1009 paramName = paramName\&.strip()\&.lower() +1010 if paramName not in self\&.settable: +1011 hits = [p for p in self\&.settable if p\&.startswith(paramName)] +1012 if len(hits) == 1: +1013 paramName = hits[0] +1014 else: +1015 return self\&.do_show(paramName) +1016 currentVal = getattr(self, paramName) +1017 if (val[0] == val[-1]) and val[0] in (''', '''): +1018 val = val[1:-1] +1019 else: +1020 val = cast(currentVal, val) +1021 setattr(self, paramName, val) +1022 self\&.stdout\&.write('%s - was: %s\nnow: %s\n' % (paramName, currentVal, val)) +1023 if currentVal != val: +1024 try: +1025 onchange_hook = getattr(self, '_onchange_%s' % paramName) +1026 onchange_hook(old=currentVal, new=val) +1027 except AttributeError: +1028 pass +1029 except (ValueError, AttributeError, NotSettableError), e: +1030 self\&.do_show(arg) + +.fi +.SS "def cmd2::Cmd::do_shell (self, arg)" +.PP +Definition at line 1035 of file cmd2\&.py'\&. +.PP +.nf +1035 +1036 def do_shell(self, arg): +1037 'execute a command as if at the OS prompt\&.' +1038 os\&.system(arg) + +.fi +.SS "def cmd2::Cmd::do_shortcuts (self, args)".PP +.nf +Lists single-key shortcuts available..fi +.PP + +.PP +Definition at line 479 of file cmd2\&.py'\&. +.PP +References shortcuts\&. +.PP +.nf +479 +480 def do_shortcuts(self, args): +481 '''Lists single-key shortcuts available\&.''' +482 result = '\n'\&.join('%s: %s' % (sc[0], sc[1]) for sc in sorted(self\&.shortcuts)) +483 self\&.stdout\&.write('Single-key shortcuts for other commands:\n%s\n' % (result)) + +.fi +.SS "def cmd2::Cmd::do_show (self, arg, opts)".PP +.nf +Shows value of a parameter..fi +.PP + +.PP +Definition at line 982 of file cmd2\&.py'\&. +.PP +References cmd2::ljust(), poutput(), and settable\&. +.PP +Referenced by do_set()\&. +.PP +.nf +982 +983 def do_show(self, arg, opts): +984 '''Shows value of a parameter\&.''' +985 param = arg\&.strip()\&.lower() +986 result = {} +987 maxlen = 0 +988 for p in self\&.settable: +989 if (not param) or p\&.startswith(param): +990 result[p] = '%s: %s' % (p, str(getattr(self, p))) +991 maxlen = max(maxlen, len(result[p])) +992 if result: +993 for p in sorted(result): +994 if opts\&.long: +995 self\&.poutput('%s # %s' % (result[p]\&.ljust(maxlen), self\&.settable[p])) +996 else: +997 self\&.poutput(result[p]) +998 else: +999 raise NotImplementedError('Parameter '%s' not supported (type 'show' for list of parameters)\&.' % param) + +.fi +.SS "def cmd2::Cmd::fileimport (self, statement, source)" +.PP +Definition at line 1258 of file cmd2\&.py'\&. +.PP +.nf +1258 +1259 def fileimport(self, statement, source): +1260 try: +1261 f = open(os\&.path\&.expanduser(source)) +1262 except IOError: +1263 self\&.stdout\&.write('Couldn't read from file %s\n' % source) +1264 return '' +1265 data = f\&.read() +1266 f\&.close() +1267 return data + +.fi +.SS "def cmd2::Cmd::func_named (self, arg)" +.PP +Definition at line 755 of file cmd2\&.py'\&. +.PP +References abbrev, and keywords\&. +.PP +Referenced by do_help()\&. +.PP +.nf +755 +756 def func_named(self, arg): +757 result = None +758 target = 'do_' + arg +759 if target in dir(self): +760 result = target +761 else: +762 if self\&.abbrev: # accept shortened versions of commands +763 funcs = [fname for fname in self\&.keywords if fname\&.startswith(arg)] +764 if len(funcs) == 1: +765 result = 'do_' + funcs[0] + return result +.fi +.SS "def cmd2::Cmd::last_matching (self, arg)" +.PP +Definition at line 1100 of file cmd2\&.py'\&. +.PP +References history\&. +.PP +Referenced by do_ed(), and do_run()\&. +.PP +.nf +1100 +1101 def last_matching(self, arg): +1102 try: +1103 if arg: +1104 return self\&.history\&.get(arg)[-1] +1105 else: +1106 return self\&.history[-1] +1107 except IndexError: + return None +.fi +.SS "def cmd2::Cmd::onecmd (self, line)".PP +.nf +Interpret the argument as though it had been typed in response +to the prompt. + +This may be overridden, but should not normally need to be; +see the precmd() and postcmd() methods for useful execution hooks. +The return value is a flag indicating whether interpretation of +commands by the interpreter should stop. + +This (`cmd2`) version of `onecmd` already override's `cmd`'s `onecmd`. + +.fi +.PP + +.PP +Definition at line 844 of file cmd2\&.py'\&. +.PP +Referenced by onecmd_plus_hooks()\&. +.PP +.nf +844 +845 def onecmd(self, line): +846 '''Interpret the argument as though it had been typed in response +847 to the prompt\&. +848 +849 This may be overridden, but should not normally need to be; +850 see the precmd() and postcmd() methods for useful execution hooks\&. +851 The return value is a flag indicating whether interpretation of +852 commands by the interpreter should stop\&. +853 +854 This (`cmd2`) version of `onecmd` already override's `cmd`'s `onecmd`\&. +855 +856 ''' +857 statement = self\&.parsed(line) +858 self\&.lastcmd = statement\&.parsed\&.raw +859 funcname = self\&.func_named(statement\&.parsed\&.command) +860 if not funcname: +861 return self\&._default(statement) +862 try: +863 func = getattr(self, funcname) +864 except AttributeError: +865 return self\&._default(statement) +866 stop = func(statement) +867 return stop + +.fi +.SS "def cmd2::Cmd::onecmd_plus_hooks (self, line)" +.PP +Definition at line 766 of file cmd2\&.py'\&. +.PP +References complete_statement(), excludeFromHistory, onecmd(), perror(), pfeedback(), pirate3::Pirate::postcmd(), pirate4::Pirate::postcmd(), pirate5::Pirate::postcmd(), pirate7::Pirate::postcmd(), pirate8::Pirate::postcmd(), pirate6::Pirate::postcmd(), postparsing_postcmd(), postparsing_precmd(), pirate3::Pirate::precmd(), pirate4::Pirate::precmd(), pirate5::Pirate::precmd(), pirate7::Pirate::precmd(), pirate8::Pirate::precmd(), pirate6::Pirate::precmd(), redirect_output(), restore_output(), and timing\&. +.PP +Referenced by do_py(), do_run(), and run_commands_at_invocation()\&. +.PP +.nf +766 +767 def onecmd_plus_hooks(self, line): +768 # The outermost level of try/finally nesting can be condensed once +769 # Python 2\&.4 support can be dropped\&. +770 stop = 0 +771 try: +772 try: +773 statement = self\&.complete_statement(line) +774 (stop, statement) = self\&.postparsing_precmd(statement) +775 if stop: +776 return self\&.postparsing_postcmd(stop) +777 if statement\&.parsed\&.command not in self\&.excludeFromHistory: +778 self\&.history\&.append(statement\&.parsed\&.raw) +779 try: +780 self\&.redirect_output(statement) +781 timestart = datetime\&.datetime\&.now() +782 statement = self\&.precmd(statement) +783 stop = self\&.onecmd(statement) +784 stop = self\&.postcmd(stop, statement) +785 if self\&.timing: +786 self\&.pfeedback('Elapsed: %s' % str(datetime\&.datetime\&.now() - timestart)) +787 finally: +788 self\&.restore_output(statement) +789 except EmptyStatement: +790 return 0 +791 except Exception, e: +792 self\&.perror(str(e), statement) +793 finally: + return self\&.postparsing_postcmd(stop) +.fi +.SS "def cmd2::Cmd::parsed (self, raw, kwargs)" +.PP +Definition at line 726 of file cmd2\&.py'\&. +.PP +References parsed(), postparse(), preparse(), and shortcuts\&. +.PP +Referenced by complete_statement(), cmd2::ParsedString::full_parsed_statement(), parsed(), and cmd2::ParsedString::with_args_replaced()\&. +.PP +.nf +726 +727 def parsed(self, raw, **kwargs): +728 if isinstance(raw, ParsedString): +729 p = raw +730 else: +731 # preparse is an overridable hook; default makes no changes +732 s = self\&.preparse(raw, **kwargs) +733 s = self\&.inputParser\&.transformString(s\&.lstrip()) +734 s = self\&.commentGrammars\&.transformString(s) +735 for (shortcut, expansion) in self\&.shortcuts: +736 if s\&.lower()\&.startswith(shortcut): +737 s = s\&.replace(shortcut, expansion + ' ', 1) +738 break +739 result = self\&.parser\&.parseString(s) +740 result['raw'] = raw +741 result['command'] = result\&.multilineCommand or result\&.command +742 result = self\&.postparse(result) +743 p = ParsedString(result\&.args) +744 p\&.parsed = result +745 p\&.parser = self\&.parsed +746 for (key, val) in kwargs\&.items(): +747 p\&.parsed[key] = val +748 return p + +.fi +.SS "def cmd2::Cmd::perror (self, errmsg, statement = \fCNone\fP)" +.PP +Definition at line 404 of file cmd2\&.py'\&. +.PP +References debug\&. +.PP +Referenced by do_py(), do_save(), and onecmd_plus_hooks()\&. +.PP +.nf +404 +405 def perror(self, errmsg, statement=None): +406 if self\&.debug: +407 traceback\&.print_exc() + print (str(errmsg)) +.fi +.SS "def cmd2::Cmd::pfeedback (self, msg)".PP +.nf +For printing nonessential feedback. Can be silenced with `quiet`. + Inclusion in redirected output is controlled by `feedback_to_output`..fi +.PP + +.PP +Definition at line 408 of file cmd2\&.py'\&. +.PP +References feedback_to_output, poutput(), and quiet\&. +.PP +Referenced by do_run(), do_save(), and onecmd_plus_hooks()\&. +.PP +.nf +408 +409 def pfeedback(self, msg): +410 '''For printing nonessential feedback\&. Can be silenced with `quiet`\&. +411 Inclusion in redirected output is controlled by `feedback_to_output`\&.''' +412 if not self\&.quiet: +413 if self\&.feedback_to_output: +414 self\&.poutput(msg) +415 else: + print (msg) +.fi +.SS "def cmd2::Cmd::postparse (self, parseResult)" +.PP +Definition at line 723 of file cmd2\&.py'\&. +.PP +Referenced by parsed()\&. +.PP +.nf +723 +724 def postparse(self, parseResult): +725 return parseResult + +.fi +.SS "def cmd2::Cmd::postparsing_postcmd (self, stop)" +.PP +Definition at line 752 of file cmd2\&.py'\&. +.PP +Referenced by _default(), and onecmd_plus_hooks()\&. +.PP +.nf +752 +753 def postparsing_postcmd(self, stop): +754 return stop + +.fi +.SS "def cmd2::Cmd::postparsing_precmd (self, statement)" +.PP +Definition at line 749 of file cmd2\&.py'\&. +.PP +Referenced by onecmd_plus_hooks()\&. +.PP +.nf +749 +750 def postparsing_precmd(self, statement): +751 stop = 0 + return stop, statement +.fi +.SS "def cmd2::Cmd::poutput (self, msg)".PP +.nf +Convenient shortcut for self.stdout.write(); adds newline if necessary..fi +.PP + +.PP +Definition at line 398 of file cmd2\&.py'\&. +.PP +Referenced by do_history(), do_list(), do_show(), pfeedback(), and select()\&. +.PP +.nf +398 +399 def poutput(self, msg): +400 '''Convenient shortcut for self\&.stdout\&.write(); adds newline if necessary\&.''' +401 if msg: +402 self\&.stdout\&.write(msg) +403 if msg[-1] != '\n': + self\&.stdout\&.write('\n') +.fi +.SS "def cmd2::Cmd::preparse (self, raw, kwargs)" +.PP +Definition at line 721 of file cmd2\&.py'\&. +.PP +Referenced by parsed()\&. +.PP +.nf +721 +722 def preparse(self, raw, **kwargs): + return raw +.fi +.SS "def cmd2::Cmd::pseudo_raw_input (self, prompt)".PP +.nf +copied from cmd's cmdloop; like raw_input, but accounts for changed stdin, stdout.fi +.PP + +.PP +Definition at line 876 of file cmd2\&.py'\&. +.PP +References use_rawinput\&. +.PP +Referenced by complete_statement()\&. +.PP +.nf +876 +877 def pseudo_raw_input(self, prompt): +878 '''copied from cmd's cmdloop; like raw_input, but accounts for changed stdin, stdout''' +879 +880 if self\&.use_rawinput: +881 try: +882 line = raw_input(prompt) +883 except EOFError: +884 line = 'EOF' +885 else: +886 self\&.stdout\&.write(prompt) +887 self\&.stdout\&.flush() +888 line = self\&.stdin\&.readline() +889 if not len(line): +890 line = 'EOF' +891 else: +892 if line[-1] == '\n': # this was always true in Cmd +893 line = line[:-1] +894 return line + +.fi +.SS "def cmd2::Cmd::read_file_or_url (self, fname)" +.PP +Definition at line 1189 of file cmd2\&.py'\&. +.PP +References defaultExtension\&. +.PP +.nf +1189 +1190 def read_file_or_url(self, fname): +1191 # TODO: not working on localhost +1192 if isinstance(fname, file): +1193 result = open(fname, 'r') +1194 else: +1195 match = self\&.urlre\&.match(fname) +1196 if match: +1197 result = urllib\&.urlopen(match\&.group(1)) +1198 else: +1199 fname = os\&.path\&.expanduser(fname) +1200 try: +1201 result = open(os\&.path\&.expanduser(fname), 'r') +1202 except IOError: +1203 result = open('%s\&.%s' % (os\&.path\&.expanduser(fname), +1204 self\&.defaultExtension), 'r') +1205 return result + +.fi +.SS "def cmd2::Cmd::redirect_output (self, statement)" +.PP +Definition at line 809 of file cmd2\&.py'\&. +.PP +References cmd2::get_paste_buffer(), kept_state, kept_sys, redirect, redirector, and stdout\&. +.PP +Referenced by onecmd_plus_hooks()\&. +.PP +.nf +809 +810 def redirect_output(self, statement): +811 if statement\&.parsed\&.pipeTo: +812 self\&.kept_state = Statekeeper(self, ('stdout',)) +813 self\&.kept_sys = Statekeeper(sys, ('stdout',)) +814 self\&.redirect = subprocess\&.Popen(statement\&.parsed\&.pipeTo, shell=True, stdout=subprocess\&.PIPE, stdin=subprocess\&.PIPE) +815 sys\&.stdout = self\&.stdout = self\&.redirect\&.stdin +816 elif statement\&.parsed\&.output: +817 if (not statement\&.parsed\&.outputTo) and (not can_clip): +818 raise EnvironmentError('Cannot redirect to paste buffer; install ``xclip`` and re-run to enable') +819 self\&.kept_state = Statekeeper(self, ('stdout',)) +820 self\&.kept_sys = Statekeeper(sys, ('stdout',)) +821 if statement\&.parsed\&.outputTo: +822 mode = 'w' +823 if statement\&.parsed\&.output == 2 * self\&.redirector: +824 mode = 'a' +825 sys\&.stdout = self\&.stdout = open(os\&.path\&.expanduser(statement\&.parsed\&.outputTo), mode) +826 else: +827 sys\&.stdout = self\&.stdout = tempfile\&.TemporaryFile(mode='w+') +828 if statement\&.parsed\&.output == '>>': +829 self\&.stdout\&.write(get_paste_buffer()) + +.fi +.SS "def cmd2::Cmd::restore_output (self, statement)" +.PP +Definition at line 830 of file cmd2\&.py'\&. +.PP +References kept_state, and cmd2::write_to_paste_buffer\&. +.PP +Referenced by onecmd_plus_hooks()\&. +.PP +.nf +830 +831 def restore_output(self, statement): +832 if self\&.kept_state: +833 if statement\&.parsed\&.output: +834 if not statement\&.parsed\&.outputTo: +835 self\&.stdout\&.seek(0) +836 write_to_paste_buffer(self\&.stdout\&.read()) +837 elif statement\&.parsed\&.pipeTo: +838 for result in self\&.redirect\&.communicate(): +839 self\&.kept_state\&.stdout\&.write(result or '') +840 self\&.stdout\&.close() +841 self\&.kept_state\&.restore() +842 self\&.kept_sys\&.restore() +843 self\&.kept_state = None + +.fi +.SS "def cmd2::Cmd::run_commands_at_invocation (self, callargs)" +.PP +Definition at line 1278 of file cmd2\&.py'\&. +.PP +References _STOP_AND_EXIT, and onecmd_plus_hooks()\&. +.PP +Referenced by cmdloop()\&. +.PP +.nf +1278 +1279 def run_commands_at_invocation(self, callargs): +1280 for initial_command in callargs: +1281 if self\&.onecmd_plus_hooks(initial_command + '\n'): +1282 return self\&._STOP_AND_EXIT + +.fi +.SS "def cmd2::Cmd::runTranscriptTests (self, callargs)" +.PP +Definition at line 1268 of file cmd2\&.py'\&. +.PP +Referenced by cmdloop()\&. +.PP +.nf +1268 +1269 def runTranscriptTests(self, callargs): +1270 class TestMyAppCase(Cmd2TestCase): +1271 CmdApp = self\&.__class__ +1272 self\&.__class__\&.testfiles = callargs +1273 sys\&.argv = [sys\&.argv[0]] # the --test argument upsets unittest\&.main() +1274 testcase = TestMyAppCase() +1275 runner = unittest\&.TextTestRunner() +1276 result = runner\&.run(testcase) +1277 result\&.printErrors() + +.fi +.SS "def cmd2::Cmd::select (self, options, prompt = \fC'Your choice? '\fP)".PP +.nf +Presents a numbered menu to the user. Modelled after + the bash shell's SELECT. Returns the item chosen. + + Argument ``options`` can be: + + | a single string -> will be split into one-word options + | a list of strings -> will be offered as options + | a list of tuples -> interpreted as (value, text), so + that the return value can differ from + the text advertised to the user .fi +.PP + +.PP +Definition at line 946 of file cmd2\&.py'\&. +.PP +References cmd2::options(), and poutput()\&. +.PP +.nf +946 +947 def select(self, options, prompt='Your choice? '): +948 '''Presents a numbered menu to the user\&. Modelled after +949 the bash shell's SELECT\&. Returns the item chosen\&. +950 +951 Argument ``options`` can be: +952 +953 | a single string -> will be split into one-word options +954 | a list of strings -> will be offered as options +955 | a list of tuples -> interpreted as (value, text), so +956 that the return value can differ from +957 the text advertised to the user ''' +958 if isinstance(options, basestring): +959 options = zip(options\&.split(), options\&.split()) +960 fulloptions = [] +961 for opt in options: +962 if isinstance(opt, basestring): +963 fulloptions\&.append((opt, opt)) +964 else: +965 try: +966 fulloptions\&.append((opt[0], opt[1])) +967 except IndexError: +968 fulloptions\&.append((opt[0], opt[0])) +969 for (idx, (value, text)) in enumerate(fulloptions): +970 self\&.poutput(' %2d\&. %s\n' % (idx+1, text)) +971 while True: +972 response = raw_input(prompt) +973 try: +974 response = int(response) +975 result = fulloptions[response - 1][0] +976 break +977 except ValueError: +978 pass # loop and ask again +979 return result + +.fi +.SH "Member Data Documentation" +.PP +.SS "\fBcmd2::Cmd::_STOP_AND_EXIT\fP = True\fC [static, private]\fP" +.PP +Definition at line 416 of file cmd2\&.py'\&. +.PP +Referenced by do_quit(), and run_commands_at_invocation()\&. +.SS "int \fBcmd2::Cmd::_STOP_SCRIPT_NO_EXIT\fP = 999\fC [static, private]\fP" +.PP +Definition at line 417 of file cmd2\&.py'\&. +.PP +Referenced by do_EOF()\&. +.SS "\fBcmd2::Cmd::abbrev\fP = True\fC [static]\fP" +.PP +Definition at line 374 of file cmd2\&.py'\&. +.PP +Referenced by func_named()\&. +.SS "\fBcmd2::Cmd::blankLinesAllowed\fP = False\fC [static]\fP" +.PP +Definition at line 490 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::blankLineTerminationParser\fP" +.PP +Definition at line 667 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::blankLineTerminator\fP" +.PP +Definition at line 667 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::case_insensitive\fP = True\fC [static]\fP" +.PP +Definition at line 363 of file cmd2\&.py'\&. +.PP +Referenced by do_cmdenvironment()\&. +.SS "dictionary \fBcmd2::Cmd::colorcodes\fP\fC [static]\fP"\fBInitial value:\fP +.PP +.nf +{'bold':{True:'\x1b[1m',False:'\x1b[22m'}, + 'cyan':{True:'\x1b[36m',False:'\x1b[39m'}, + 'blue':{True:'\x1b[34m',False:'\x1b[39m'}, + 'red':{True:'\x1b[31m',False:'\x1b[39m'}, + 'magenta':{True:'\x1b[35m',False:'\x1b[39m'}, + 'green':{True:'\x1b[32m',False:'\x1b[39m'}, + 'underline':{True:'\x1b[4m',False:'\x1b[24m'}} +.fi +.PP +Definition at line 427 of file cmd2\&.py'\&. +.SS "tuple \fBcmd2::Cmd::colors\fP = (platform\&.system() != 'Windows')\fC [static]\fP" +.PP +Definition at line 434 of file cmd2\&.py'\&. +.SS "tuple \fBcmd2::Cmd::commentGrammars\fP = pyparsing\&.Or([pyparsing\&.pythonStyleComment, pyparsing\&.cStyleComment])\fC [static]\fP" +.PP +Definition at line 485 of file cmd2\&.py'\&. +.PP +Referenced by complete_statement()\&. +.SS "tuple \fBcmd2::Cmd::commentInProgress\fP = pyparsing\&.Literal('/*')\fC [static]\fP" +.PP +Definition at line 487 of file cmd2\&.py'\&. +.SS "string \fBcmd2::Cmd::continuation_prompt\fP = '> '\fC [static]\fP" +.PP +Definition at line 364 of file cmd2\&.py'\&. +.PP +Referenced by complete_statement()\&. +.SS "\fBcmd2::Cmd::continuation_prompt\fP" +.PP +Definition at line 1218 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::current_script_dir\fP = None\fC [static]\fP" +.PP +Definition at line 375 of file cmd2\&.py'\&. +.PP +Referenced by do__relative_load()\&. +.SS "\fBcmd2::Cmd::debug\fP = False\fC [static]\fP" +.PP +Definition at line 379 of file cmd2\&.py'\&. +.PP +Referenced by perror()\&. +.SS "string \fBcmd2::Cmd::default_file_name\fP = 'command\&.txt'\fC [static]\fP" +.PP +Definition at line 373 of file cmd2\&.py'\&. +.PP +Referenced by do_ed(), and do_save()\&. +.SS "\fBcmd2::Cmd::default_to_shell\fP = False\fC [static]\fP" +.PP +Reimplemented in \fBpirate7::Pirate\fP, and \fBpirate8::Pirate\fP'\&. +.PP +Definition at line 370 of file cmd2\&.py'\&. +.PP +Referenced by _default()\&. +.SS "string \fBcmd2::Cmd::defaultExtension\fP = 'txt'\fC [static]\fP" +.PP +Definition at line 372 of file cmd2\&.py'\&. +.PP +Referenced by read_file_or_url()\&. +.SS "\fBcmd2::Cmd::do__load\fP = do_load\fC [static]\fP" +.PP +Definition at line 1241 of file cmd2\&.py'\&. +.PP +Referenced by do__relative_load(), and do_ed()\&. +.SS "\fBcmd2::Cmd::do_edit\fP = do_ed\fC [static]\fP" +.PP +Definition at line 1155 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::do_eof\fP = do_EOF\fC [static]\fP" +.PP +Definition at line 939 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::do_exit\fP = do_quit\fC [static]\fP" +.PP +Definition at line 943 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::do_hi\fP = do_history\fC [static]\fP" +.PP +Definition at line 1124 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::do_l\fP = do_list\fC [static]\fP" +.PP +Definition at line 1125 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::do_li\fP = do_list\fC [static]\fP" +.PP +Definition at line 1126 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::do_q\fP = do_quit\fC [static]\fP" +.PP +Definition at line 944 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::do_r\fP = do_run\fC [static]\fP" +.PP +Definition at line 1256 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::echo\fP = False\fC [static]\fP" +.PP +Definition at line 362 of file cmd2\&.py'\&. +.SS "tuple \fBcmd2::Cmd::editor\fP = os\&.environ\&.get('EDITOR')\fC [static]\fP" +.PP +Definition at line 418 of file cmd2\&.py'\&. +.PP +Referenced by do_ed()\&. +.SS "string \fBcmd2::Cmd::editor\fP = 'notepad'\fC [static]\fP" +.PP +Definition at line 421 of file cmd2\&.py'\&. +.SS "string \fBcmd2::Cmd::excludeFromHistory\fP = '''run r list l \fBhistory\fP hi ed edit li eof'''\fC [static]\fP" +.PP +Definition at line 369 of file cmd2\&.py'\&. +.PP +Referenced by onecmd_plus_hooks()\&. +.SS "\fBcmd2::Cmd::feedback_to_output\fP = False\fC [static]\fP" +.PP +Definition at line 377 of file cmd2\&.py'\&. +.PP +Referenced by pfeedback()\&. +.SS "string \fBcmd2::Cmd::help\fP = 'describe function of parameter'\fC [static]\fP" +.PP +Reimplemented in \fBpirate8::Pirate\fP'\&. +.PP +Definition at line 981 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::history\fP" +.PP +Definition at line 469 of file cmd2\&.py'\&. +.PP +Referenced by do_ed(), do_history(), do_save(), and last_matching()\&. +.SS "\fBcmd2::Cmd::initial_stdout\fP" +.PP +Definition at line 469 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::inputParser\fP" +.PP +Definition at line 667 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::intro\fP" +.PP +Definition at line 898 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::kept_state\fP = None\fC [static]\fP" +.PP +Definition at line 381 of file cmd2\&.py'\&. +.PP +Referenced by redirect_output(), and restore_output()\&. +.SS "\fBcmd2::Cmd::kept_sys\fP" +.PP +Definition at line 809 of file cmd2\&.py'\&. +.PP +Referenced by redirect_output()\&. +.SS "\fBcmd2::Cmd::keywords\fP" +.PP +Definition at line 469 of file cmd2\&.py'\&. +.PP +Referenced by func_named()\&. +.SS "\fBcmd2::Cmd::lastcmd\fP" +.PP +Definition at line 854 of file cmd2\&.py'\&. +.SS "string \fBcmd2::Cmd::legalChars\fP = u'!#$%\&.:?@_'\fC [static]\fP" +.PP +Definition at line 367 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::locals_in_py\fP = True\fC [static]\fP" +.PP +Definition at line 380 of file cmd2\&.py'\&. +.PP +Referenced by do_py()\&. +.SS "\fBcmd2::Cmd::multilineCommand\fP" +.PP +Definition at line 667 of file cmd2\&.py'\&. +.SS "list \fBcmd2::Cmd::multilineCommands\fP = []\fC [static]\fP" +.PP +Reimplemented in \fBpirate7::Pirate\fP, \fBpirate8::Pirate\fP, and \fBexample::CmdLineApp\fP'\&. +.PP +Definition at line 491 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::multilineParser\fP" +.PP +Definition at line 667 of file cmd2\&.py'\&. +.SS "string \fBcmd2::Cmd::noSpecialParse\fP = 'set ed edit exit'\fC [static]\fP" +.PP +Definition at line 371 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::old_completer\fP" +.PP +Definition at line 898 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::parser\fP" +.PP +Definition at line 667 of file cmd2\&.py'\&. +.PP +Referenced by cmd2::ParsedString::full_parsed_statement(), and cmd2::ParsedString::with_args_replaced()\&. +.SS "tuple \fBcmd2::Cmd::prefixParser\fP = pyparsing\&.Empty()\fC [static]\fP" +.PP +Definition at line 484 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::prompt\fP" +.PP +Reimplemented in \fBpirate6::Pirate\fP, \fBpirate7::Pirate\fP, and \fBpirate8::Pirate\fP'\&. +.PP +Definition at line 1218 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::pystate\fP" +.PP +Definition at line 469 of file cmd2\&.py'\&. +.PP +Referenced by do_py()\&. +.SS "\fBcmd2::Cmd::quiet\fP = False\fC [static]\fP" +.PP +Definition at line 378 of file cmd2\&.py'\&. +.PP +Referenced by pfeedback()\&. +.SS "\fBcmd2::Cmd::redirect\fP" +.PP +Definition at line 809 of file cmd2\&.py'\&. +.PP +Referenced by redirect_output()\&. +.SS "string \fBcmd2::Cmd::redirector\fP = '>'\fC [static]\fP" +.PP +Reimplemented in \fBexample::CmdLineApp\fP'\&. +.PP +Definition at line 382 of file cmd2\&.py'\&. +.PP +Referenced by redirect_output()\&. +.SS "list \fBcmd2::Cmd::reserved_words\fP = []\fC [static]\fP" +.PP +Definition at line 376 of file cmd2\&.py'\&. +.SS "tuple \fBcmd2::Cmd::saveparser\fP\fC [static]\fP"\fBInitial value:\fP +.PP +.nf +(pyparsing\&.Optional(pyparsing\&.Word(pyparsing\&.nums)^'*')('idx') + + pyparsing\&.Optional(pyparsing\&.Word(legalChars + '/\\'))('fname') + + pyparsing\&.stringEnd) +.fi +.PP +Definition at line 1157 of file cmd2\&.py'\&. +.SS "tuple \fBcmd2::Cmd::settable\fP\fC [static]\fP"\fBInitial value:\fP +.PP +.nf +stubbornDict(''' + prompt + colors Colorized output (*nix only) + continuation_prompt On 2nd+ line of input + debug Show full error stack on error + default_file_name for ``save``, ``load``, etc\&. + editor Program used by ``edit`` + case_insensitive upper- and lower-case both OK + feedback_to_output include nonessentials in `|`, `>` results + quiet Don't print nonessential feedback + echo Echo command issued into output + timing Report execution times + abbrev Accept abbreviated commands + ''') +.fi +.PP +Reimplemented in \fBpirate7::Pirate\fP, and \fBpirate8::Pirate\fP'\&. +.PP +Definition at line 383 of file cmd2\&.py'\&. +.PP +Referenced by do_cmdenvironment(), do_set(), and do_show()\&. +.SS "dictionary \fBcmd2::Cmd::shortcuts\fP = {'?': '\fBhelp\fP', '!': 'shell', '@': 'load', '@@': '_relative_load'}\fC [static]\fP" +.PP +Definition at line 368 of file cmd2\&.py'\&. +.PP +Referenced by do_shortcuts(), and parsed()\&. +.SS "\fBcmd2::Cmd::shortcuts\fP" +.PP +Definition at line 469 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::singleLineParser\fP" +.PP +Definition at line 667 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::stdin\fP" +.PP +Definition at line 1218 of file cmd2\&.py'\&. +.PP +Referenced by do_py()\&. +.SS "\fBcmd2::Cmd::stdout\fP" +.PP +Definition at line 440 of file cmd2\&.py'\&. +.PP +Referenced by do_help(), do_py(), and redirect_output()\&. +.SS "list \fBcmd2::Cmd::terminators\fP = [';']\fC [static]\fP" +.PP +Reimplemented in \fBpirate7::Pirate\fP, and \fBpirate8::Pirate\fP'\&. +.PP +Definition at line 489 of file cmd2\&.py'\&. +.PP +Referenced by do_cmdenvironment()\&. +.SS "\fBcmd2::Cmd::timing\fP = False\fC [static]\fP" +.PP +Definition at line 365 of file cmd2\&.py'\&. +.PP +Referenced by onecmd_plus_hooks()\&. +.SS "tuple \fBcmd2::Cmd::urlre\fP = re\&.compile('(https?://[-\\\\w\\\\\&./]+)')\fC [static]\fP" +.PP +Definition at line 1217 of file cmd2\&.py'\&. +.SS "\fBcmd2::Cmd::use_rawinput\fP" +.PP +Definition at line 1218 of file cmd2\&.py'\&. +.PP +Referenced by pseudo_raw_input()\&. + +.SH "Author" +.PP +Generated automatically by Doxygen for Cmd2 from the source code'\&. |