| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Also:
- Reanamed foo and bar subcommand methods to base_foo and base_bar
|
|
|
|
|
|
|
|
|
|
| |
History changes:
- Unknown commands are no longer saved in the history
- history command now has a -t option to generate a transcript based on commands in the history
Also:
- Moved examples transcripts from examples to examples/transcripts
- Added a new transcript for use with the pirate.py example
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Modified the do_help() method to behave differently for methods which have been decorated with an argparse ArgumentParser.
This is so that help will properly deal with sub-command help.
Suppose you have a base command "base" which has two sub-commands, "foo" and "bar". Then "help base" will provide very different help text than "help base foo".
Slightly tweaked the two argparse decorators to set an attribute in the decorated function's dictionary so that the do_help method can know which functions have an ArgumentParser and which do not.
Added a "subcommands.py" example for demonstrating how to create and use subcommands based on argparse and the cmd2 @with_argument_parser decorator.
|
|
|
|
|
|
| |
I eliminated a few "narg=1" configurations so that a single str value is returned instead of a List[str].
I also reworded some documentation which was no longer correct after the last commit which made "history command" have the same help text as "command -h" when using one of the two argparse decorators.
|
|
|
|
|
|
| |
Now "help command_name" and "command_name -h" provide exactly the same text.
The function docstring for the "do_*" command sets and overrides the ArgumentParser "description" if the docstring is not empty.
|
|
|
|
| |
Removed usage of and reference to attributes and commands which have now been removed.
|
|
|
|
| |
descriptive
|
|
|
|
| |
Also added another @with_argparser_and_list decorator that uses argparse.parse_known_args to pass two arguments to a command: both the argparse output and a list of unknown/unmatched args.
|
| |
|
|
|
|
|
|
|
|
|
| |
1) cmd2 no longer imports make_option from optparse
- test files and examples now import this directly
- this helps emphasize that this old optparse methodology of adding options to commands is deprecated
2) All argparsers have been given custom names instead of just "argparser"
- this helps with readability and maintainability, especially with IDE renaming and such
|
| |
|
|
|
|
| |
new attribute on Cmd2.cmd which defaults to false, but if set true, causes all do_* commands to receive a list of arguments, instead of a string of what the user typed.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Changes include:
- argparse_example.py modified to do pass all unknown args onto cmd2 and allow arguments at invocation
- example.py comments modified to indicate it is intended to be used with transcript_regext.txt
- exampleSession.txt fixed so it works properly with argparse_example.py
|
| |
| |
| |
| | |
attribute before calling super class __init__
|
|/ |
|
|
|
|
|
|
|
| |
Also:
- Added arg_print.py example to demonstrate this
- Bumped version to 0.7.8a
- Updated CHANGELOG
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
This is so that non-essential info which isn't directly associated with command output, such as time elapsed while executing a command, won't redirect when command output is redirected using >, >>, or |.
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Bugs fixed:
- Case-sensitive parsing was completely broken, this has been fixed
- <Ctrl>+D to quit wasn't working when case-sensitive parsing was enabled, this is fixed
Added a "case_sensitive.py" example in the examples directory for quickly testing case-sensitive command parsing behavior.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Bug fixes:
- case_insensitive is no longer a runtime-settable parameter, but it was still listed as such
- Fixed a recursive loop bug when abbreviated commands are enabled and it could get stuck in the editor forever
- Added additional command abbreviations to the "exclude from history" list
- Fixed argparse_example.py and pirate.py examples
Other changes:
- Organized all attributes used to configure the ParserManager into a single location
- Set the default value of "abbrev" to False (which controls whether or not abbreviated commands are allowed)
- With good tab-completion of command names, using abbreviated commands isn't a particularly useful feature
- And it can create problems
|
|
|
|
|
|
| |
It was pretty useless, it just printed a message and sat there and waited for the user to hit enter.
It didn't feel like it belonged in a top-level framework. If a particular application wants this functionality, it is a 2 line change to add it back.
|
|
|
|
|
|
|
| |
Also:
- Updated pythong_scripting.py example to show how to colorize text
- Updated contributing.md to show how to run code coverage in parallel using python-xdist and -nauto
- Updated contributing.md to talk more about looking at unit test results within the PR
|
|
|
|
| |
The self.settable object is now an OrderedDict instead of a custom StubbornDict.
|
|
|
|
|
|
|
|
| |
Load and relative load now require a file path
Edit will use a temporary file by default and delete it when done
Save will use a temporary file by default and inform the user what it is
Also changed the default value for autorun_on_edit to False so that it can safely be used as an actual file editor.
|
|
|
|
| |
Also removed default argument for _relative_load and load
|
|
|
|
|
|
| |
Cleaned up the examples directory by adding a scripts subdirectory.
This makes it a bit clearer which Python files are example cmd2 applications and which are example Python scripts for use with the pyscript command.
|
|
|
|
|
|
|
|
|
|
|
| |
Now by default all @options commands get passed a list of argument strings instead of a single argument string.
This is a much easier and more robust behavior to deal with. Additionally, command-line arguments are intelligently separated based on location of quotes to group things into a single argument.
WARNING: This change breaks backward compatibility for older applicaitons based on cmd2. To change the behavior to the way it used to be, add the following code to the __init__() method of our class derived from cmd2.Cmd:
cmd2.set_use_arg_list(False)
This change really does make it easier for developers new to using cmd2 however. It is to the point where I create all custom commands with @options, even if I use an empty list for the options because the argument parsing is just much better this way.
|
|
|
|
|
|
|
|
|
| |
Added information related to the new pyscript command.
The old way of running Python scripts via "py run()" should be considered deprecated. The new "pyscript" command
is superior in two significant ways:
1) It supports tab-completion of file system paths
2) It allows the user to pass command-line arguments to scripts
|
|
|
|
|
|
|
|
| |
This command is explicitly for running Python script files within an embedded Python interpreter.
The advantages over the py command with "run" are:
- Tab-completion of file system paths is supported
- Command-line arguments can be passed to the Python script
|
|
|
|
| |
Updated these to reflect that the list command has been removed
|
|
|
|
| |
command completion
|
|
|
|
|
|
| |
Than it is for Python 2 on Windows or Python 3 on Linux or Mac.
Go figure. You would think it would be the same for Python 3 across platforms.
|