summaryrefslogtreecommitdiff
path: root/cmd2/pyscript_bridge.py
Commit message (Collapse)AuthorAgeFilesLines
* Cleaned up some PyCharm warningsTodd Leonhardt2019-03-131-0/+1
|
* Replaced StdSim.__store_output with StdSim.pause_storageKevin Van Brunt2019-03-091-3/+4
|
* Added way to turn off storing stdout and stderr in StdSimKevin Van Brunt2019-03-061-10/+27
|
* Fixed a lot of warningsKevin Van Brunt2019-03-011-1/+1
|
* Removed ability to call commands as if they were functions in pyscript (e.g. ↵Kevin Van Brunt2019-02-281-281/+25
| | | | app.help())
* Fix flake8 issuesTodd Leonhardt2018-12-061-2/+1
| | | | | | | | | | | | | | | | | | | | | | This commit contains a very large number of trivial changes in order to fix flake8 errors and warnings. Predominantly these are whitespace changes. Additionally, the build for Python 3.7 on TravisCI has been tweaked to fail if there are any flake8 errors using the following commandline: * flake8 . --count --ignore=E252 --max-complexity=31 --max-line-length=127 --show-source --statistics NOTE: In the future the max cyclomatic complexity should be lowered, but some improvements need to be made first. One flake8 error is being ignored entirely: * E252 missing whitespace around parameter equals * ignored because it doesn't correctly deal with default argument values after a type hint A few flake8 errors are being selectively ignored in certain files: * C901 fuction is too complex * ignored in argparse_completer.py because the complex code is an override of argparse complexity * E302 expected 2 blank lines after ... * ignored in all unit test files for convenience * F401 module imported but unused * ignored in cmd2/__init__.py because imports are for convenience of cmd2 developers and backwards compatibility * F821 undefined name * ignored in cmd2 script files which are intended to run only within cmd2 applications via pyscript where "app" and "cmd" are defined
* Updated commentKevin Van Brunt2018-11-301-4/+4
|
* RefactoredKevin Van Brunt2018-10-131-26/+29
|
* Argparse commands called as methods of PyscriptBridge now go through ↵Kevin Van Brunt2018-10-121-14/+15
| | | | onecmd_plus_hooks
* Non-argparse commands called as methods of PyscriptBridge now go through ↵Kevin Van Brunt2018-10-121-1/+6
| | | | onecmd_plus_hooks
* Fixed ArgparseFunctor to allow flag looking tokens in REMAINDER sectionsKevin Van Brunt2018-10-101-2/+4
|
* Added code to handle -- in argparse completerKevin Van Brunt2018-10-101-3/+3
|
* Added ability for argcompleter to determine difference between flag and ↵Kevin Van Brunt2018-10-091-6/+7
| | | | negative number
* Use argparser to determine if a token looks like an optionalKevin Van Brunt2018-10-071-17/+2
|
* Allowing negative number values when checking for optional prefix charactersKevin Van Brunt2018-10-071-5/+6
|
* Added check to prevent optional value strings from being accepted as positionalsKevin Van Brunt2018-10-061-4/+23
|
* Quoting strings with utility functionKevin Van Brunt2018-10-061-5/+3
|
* Fixed unit test failures and addressed code review commentsTodd Leonhardt2018-10-061-5/+6
|
* Merge remote-tracking branch 'origin/master' into argparse_remainderEric Lin2018-10-061-4/+11
|\
| * Simplified codeKevin Van Brunt2018-10-051-1/+1
| |
| * No longer using stderr and self.data together to determine truthiness of a ↵Kevin Van Brunt2018-10-051-3/+10
| | | | | | | | | | | | | | CommandResult. Either self.data is used or if that's not possible, then self.stderr is used. This provided applications the ability to print to stderr even if an error didn't occur.
| * Using sub-command instead of subcommand where possible to be consistent with ↵Kevin Van Brunt2018-10-051-1/+1
| | | | | | | | argparse
* | Added handling of nargs=argparse.REMAINDER in both AutoCompleter and ↵Eric Lin2018-10-061-16/+49
|/ | | | | | | | ArgparseFunctor Should correctly force all subsequent arguments to go to the REMAINDER argument once it is detected. Re-arranged the command generation in ArgparseFunctor to print flag arguments before positionals Also forces the remainder arguments to always be last.
* Tweaked some error stringsKevin Van Brunt2018-10-031-2/+2
|
* Returned cmd_echo default to False except when running a Python command at ↵Kevin Van Brunt2018-10-021-1/+1
| | | | the CLI
* Improved documentationKevin Van Brunt2018-10-021-3/+5
|
* Default cmd_echo to True in PyscriptBridge so things like 'py app.help()' ↵Kevin Van Brunt2018-10-021-5/+5
| | | | will show output
* Changed PyscriptBridge.__getattr__ to raise Attribute error for non-commandsKevin Van Brunt2018-10-021-2/+6
|
* Added echo parameter for calling commands from PyscriptKevin Van Brunt2018-10-021-7/+16
| | | | Documented py command's parsing limitations
* Refactored functions to use cmd2.cmd_func()Kevin Van Brunt2018-09-281-15/+15
|
* Fixed several hack classes build to simulate file descriptorsTodd Leonhardt2018-09-231-33/+8
| | | | | | | | | Now there is a single class, StdSim in utils.py, which is intended to simulate stdout and stderr file objects. This class replaced the following: - pyscript_bridge.py::CopyStream - transcript.py::OutputTrap - conftest.py::StdOut
* Deprecated CmdResult helper class and promoted CommandResultTodd Leonhardt2018-06-231-1/+1
| | | | | | | | | | | | | | These classes are subtly different, particularly in terms of their truthiness. CmdResult - attributes: out, err, war - truthy: if err is falsy CommandResult - attributes: stdout, stderr, data - truthy: if err is falsy AND data is not None So CmdResult was oriented to provide essentially info, error, and warning messages to the user (typically as stirngs), whereas CommandResult is geared towards providing info and error messages to the user as strings in addition to data to the user in a command-specific format which is arbitrary other than it should never be None if the command succeeds.
* Added yet more type hintingTodd Leonhardt2018-06-101-2/+2
|
* Working on improving type hintingTodd Leonhardt2018-06-091-2/+3
| | | | | Also: - Refactored perror() to remove a rarely used optional argument which was unecessary
* Changed some unit tests to use pytest-mock instead of mocker/monkeypatch ↵Eric Lin2018-05-191-2/+2
| | | | | | | because they were failing for me. Added detection of ==SUPPRESS== in subcommand group names to avoid printing it in the help hint. Added some examples to tab_autocompletion to demonstrate how to tie in to cmd2 path_complete
* Added type hinting.Eric Lin2018-05-181-10/+9
|
* Suppresses stdout and stderr output by default when calling an application ↵Eric Lin2018-05-171-15/+31
| | | | | | | command from pyscript. Added support for tab completing application commands in ipython shell Updated unit tests scripts to set cmd_echo to True to validate command output.
* Some more pyscripting tweaks. Fixed issue with capturing ppaged output. ↵Eric Lin2018-05-041-4/+17
| | | | Added pyscript bridge to ipy command. Saving progress.
* Added support for customizing the pyscript bridge pystate object name.Eric Lin2018-05-021-19/+41
| | | | | | | Removed all legacy pystate objects. Changed default behavior to clear _last_result before each command Added utility for creating named tuples with default values Added tests to exercise new changes.
* Added CommandResult which returns stdout, stderr, and command dataEric Lin2018-05-011-2/+37
|
* Added support for different argument modes and tests to validate.Eric Lin2018-05-011-3/+59
|
* Further customization of argparse applying patch submitted to ↵Eric Lin2018-04-301-0/+1
| | | | | | | https://bugs.python.org/issue15112 Added additional tests - now at 100% coverage of pyscript_bridge.py Still need handling of special action types: StoreTrue/False, store_const, count
* Added more tests exercising the pyscript bridge.Eric Lin2018-04-301-4/+9
|
* Added support for translating function positional and keyword arguments into ↵Eric Lin2018-04-281-9/+55
| | | | | | argparse command positional and flag arguments. Added initial set of tests
* small tweak. saving state.Eric Lin2018-04-271-6/+7
|
* Initial approach to the pyscript revamp.Eric Lin2018-04-241-0/+107
Doesn't handle all argparse argument options yet (nargs, append, flag, probably more) For #368