diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 595d3735a..11b57fb7d 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -284,7 +284,7 @@ You can run multiple tasks in a single invocation, for example:: $ invoke docs sdist wheel ``` -That one command will remove all superflous cache, testing, and build +That one command will remove all superfluous cache, testing, and build files, render the documentation, and build a source distribution and a wheel distribution. @@ -298,7 +298,7 @@ $ cd ~src/cmd2 $ invoke pytest ``` -If the tests are executed it means that dependencies and project are installed succesfully. +If the tests are executed it means that dependencies and project are installed successfully. You can also run the example app and see a prompt that says "(Cmd)" running the command: diff --git a/CHANGELOG.md b/CHANGELOG.md index e8dacd652..417d9b427 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -725,7 +725,7 @@ * Enhancements * Added ability to include command name placeholders in the message printed when trying to run a disabled command. * See docstring for ``disable_command()`` or ``disable_category()`` for more details. - * Added instance attributes to customize error messages without having to override methods. Theses messages can + * Added instance attributes to customize error messages without having to override methods. These messages can also be colored. * `help_error` - the error that prints when no help information can be found * `default_error` - the error that prints when a non-existent command is run @@ -862,7 +862,7 @@ * Aliases are now sorted alphabetically * The **set** command now tab completes settable parameter names * Added ``async_alert``, ``async_update_prompt``, and ``set_window_title`` functions - * These allow you to provide feedback to the user in an asychronous fashion, meaning alerts can + * These allow you to provide feedback to the user in an asynchronous fashion, meaning alerts can display when the user is still entering text at the prompt. See [async_printing.py](https://github.com/python-cmd2/cmd2/blob/master/examples/async_printing.py) for an example. * Cross-platform colored output support @@ -962,7 +962,7 @@ * New pyscript approach that provides a pythonic interface to commands in the cmd2 application. * Switch command parsing from pyparsing to custom code which utilizes shlex. * The object passed to do_* methods has changed. It no longer is the pyparsing object, it's a new Statement object, which is a subclass of ``str``. The statement object has many attributes which give you access to various components of the parsed input. If you were using anything but the string in your do_* methods, this change will require you to update your code. - * ``commentGrammers`` is no longer supported or available. Comments are C-style or python style. + * ``commentGrammars`` is no longer supported or available. Comments are C-style or python style. * Input redirection no longer supported. Use the load command instead. * ``multilineCommand`` attribute is ``now multiline_command`` * ``identchars`` is now ignored. The standardlibrary cmd uses those characters to split the first "word" of the input, but cmd2 hasn't used those for a while, and the new parsing logic parses on whitespace, which has the added benefit of full unicode support, unlike cmd or prior versions of cmd2. diff --git a/README.md b/README.md index d15d58eb8..ac65e91c0 100755 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@

- Develper's Toolbox • + Developer's ToolboxPhilosophyInstallationDocumentation • diff --git a/cmd2/argparse_custom.py b/cmd2/argparse_custom.py index c2125c46d..8201d54b9 100644 --- a/cmd2/argparse_custom.py +++ b/cmd2/argparse_custom.py @@ -101,7 +101,7 @@ def my_choices_provider(self): an acceptable value for these arguments. There are times when what's being tab completed is determined by a previous -argument on the command line. In theses cases, ArgparseCompleter can pass a +argument on the command line. In these cases, ArgparseCompleter can pass a dictionary that maps the command line tokens up through the one being completed to their argparse argument name. To receive this dictionary, your choices/completer function should have an argument called arg_tokens. diff --git a/cmd2/transcript.py b/cmd2/transcript.py index fdbcd0299..f4781fd99 100644 --- a/cmd2/transcript.py +++ b/cmd2/transcript.py @@ -205,7 +205,7 @@ def _escaped_find(regex: str, s: str, start: int, in_regex: bool) -> Tuple[str, # escaped. We found it. break else: - # check if the slash is preceeded by a backslash + # check if the slash is preceded by a backslash if s[pos - 1 : pos] == '\\': # it is. if in_regex: diff --git a/docs/doc_conventions.rst b/docs/doc_conventions.rst index 6adad4c93..fc96fd582 100644 --- a/docs/doc_conventions.rst +++ b/docs/doc_conventions.rst @@ -59,8 +59,8 @@ Titles and Headings ------------------- reStructuredText allows flexibility in how headings are defined. You only have -to worry about the heirarchy of headings within a single file. Sphinx magically -handles the intra-file heirarchy on it's own. This magic means that no matter +to worry about the hierarchy of headings within a single file. Sphinx magically +handles the intra-file hierarchy on it's own. This magic means that no matter how you style titles and headings in the various files that comprise the documentation, Sphinx will render properly structured output. To ensure we have a similar consistency when viewing the source files, we use the following diff --git a/docs/features/commands.rst b/docs/features/commands.rst index 66745469e..5dd5a163b 100644 --- a/docs/features/commands.rst +++ b/docs/features/commands.rst @@ -4,7 +4,7 @@ Commands .. _cmd: https://docs.python.org/3/library/cmd.html ``cmd2`` is designed to make it easy for you to create new commands. These -commmands form the backbone of your application. If you started writing your +commands form the backbone of your application. If you started writing your application using cmd_, all the commands you have built will work when you move to ``cmd2``. However, there are many more capabilities available in ``cmd2`` which you can take advantage of to add more robust features to your commands, @@ -222,5 +222,3 @@ to: - Define commands in separate CommandSet modules - Load or unload commands at runtime - - diff --git a/docs/features/help.rst b/docs/features/help.rst index 57aa21870..b98e4164d 100644 --- a/docs/features/help.rst +++ b/docs/features/help.rst @@ -41,7 +41,7 @@ Providing Help ``cmd2`` makes it easy for developers of ``cmd2`` applications to provide this help. By default, the help for a command is the docstring for the ``do_*`` method defining the command - e.g. for a command **foo**, that command is -implementd by defining the ``do_foo`` method and the docstring for that method +implemented by defining the ``do_foo`` method and the docstring for that method is the help. For commands which use one of the ``argparse`` decorators to parse arguments, diff --git a/docs/features/hooks.rst b/docs/features/hooks.rst index 881b4e7e5..1ae2f3e4a 100644 --- a/docs/features/hooks.rst +++ b/docs/features/hooks.rst @@ -171,7 +171,7 @@ object, including ``.raw`` which contains exactly what the user typed. The hook method must return a :class:`cmd2.plugin.PostparsingData` object, and it is very convenient to just return the object passed into the hook method. -The hook method may modify the attributes of the object to influece the +The hook method may modify the attributes of the object to influence the behavior of the application. If ``params.stop`` is set to true, a fatal failure is triggered prior to execution of the command, and the application exits. @@ -287,7 +287,7 @@ Any postcommand hook can change the value of the ``stop`` attribute before returning it, and the modified value will be passed to the next postcommand hook. The value returned by the final postcommand hook will be passed to the command finalization hooks, which may further modify the value. If your hook -blindly returns ``False``, a prior hook's requst to exit the application will +blindly returns ``False``, a prior hook's request to exit the application will not be honored. It's best to return the value you were passed unless you have a compelling reason to do otherwise. @@ -330,7 +330,7 @@ hook. The value returned by the final command finalization hook will determine whether the application terminates or not. This approach to command finalization hooks can be powerful, but it can also -cause problems. If your hook blindly returns ``False``, a prior hook's requst +cause problems. If your hook blindly returns ``False``, a prior hook's request to exit the application will not be honored. It's best to return the value you were passed unless you have a compelling reason to do otherwise. diff --git a/docs/features/scripting.rst b/docs/features/scripting.rst index ea06371f1..bb05c460c 100644 --- a/docs/features/scripting.rst +++ b/docs/features/scripting.rst @@ -335,7 +335,7 @@ Developing an Advanced API Until now the application designer has paid little attention to scripters and their needs. Wouldn't it be nice if while creating py_scripts one did not have to parse data from ``stdout``? We can -accomodate the weary scripter by adding one small line at the end of our ``do_*`` commands. +accommodate the weary scripter by adding one small line at the end of our ``do_*`` commands. ``self.last_result = `` @@ -446,7 +446,7 @@ app.py:: self._status_cache[args.name] = status self.poutput( - f"Build {args.name.upper()} successfuly stared with id : {status.id}" + f"Build {args.name.upper()} successfully stared with id : {status.id}" ) self.last_result = status @@ -496,7 +496,7 @@ The below is a possible solution via pyscript:: #error checking if not result: - print("Unable to determin status") + print("Unable to determine status") break build_status = result.data diff --git a/docs/features/settings.rst b/docs/features/settings.rst index a30f633d8..d2a8da29e 100644 --- a/docs/features/settings.rst +++ b/docs/features/settings.rst @@ -23,7 +23,7 @@ show all settings and to modify the value of any setting. allow_style ~~~~~~~~~~~ -Output generated by ``cmd2`` programs may contain ANSI escape seqences which +Output generated by ``cmd2`` programs may contain ANSI escape sequences which instruct the terminal to apply colors or text styling (i.e. bold) to the output. The ``allow_style`` setting controls the behavior of these escape sequences in output generated with any of the following methods: diff --git a/docs/migrating/why.rst b/docs/migrating/why.rst index a166d6484..2bfd45f14 100644 --- a/docs/migrating/why.rst +++ b/docs/migrating/why.rst @@ -77,6 +77,6 @@ Next Steps ---------- In addition to the features you get with no additional work, ``cmd2`` offers a -broad range of additional capabilties which can be easily added to your +broad range of additional capabilities which can be easily added to your application. :ref:`migrating/next_steps:Next Steps` has some ideas of where you can start, or you can dig in to all the :ref:`features/index:Features`. diff --git a/docs/testing.rst b/docs/testing.rst index c41ada3ff..1a5163b43 100644 --- a/docs/testing.rst +++ b/docs/testing.rst @@ -30,7 +30,7 @@ If you need to mock anything in your cmd2 application, and most specifically in sub-classes of :class:`~cmd2.Cmd` or :class:`~cmd2.command_definition.CommandSet`, you must use `Autospeccing `_, `spec=True `_, or whatever -equivalant is provided in the mocking library you're using. +equivalent is provided in the mocking library you're using. In order to automatically load functions as commands cmd2 performs a number of reflection calls to look up attributes of classes defined in your cmd2 diff --git a/plugins/template/README.md b/plugins/template/README.md index 8617acd76..aba5f9146 100644 --- a/plugins/template/README.md +++ b/plugins/template/README.md @@ -78,7 +78,7 @@ required for two reasons: ### Add commands -Your plugin can add user visable commands. You do it the same way in a plugin +Your plugin can add user visible commands. You do it the same way in a plugin that you would in a `cmd2.Cmd` app: ```python @@ -197,7 +197,7 @@ You can run multiple tasks in a single invocation, for example: $ invoke clean docs sdist wheel ``` -That one command will remove all superflous cache, testing, and build +That one command will remove all superfluous cache, testing, and build files, render the documentation, and build a source distribution and a wheel distribution. diff --git a/readme_files/shoutout.txt b/readme_files/shoutout.txt index 362c3a7e6..ea3f8ec12 100644 --- a/readme_files/shoutout.txt +++ b/readme_files/shoutout.txt @@ -1,8 +1,8 @@ -Name: +Name: Source Code: -Status: -Description: -Genre: +Status: +Description: +Genre: @@ -12,85 +12,84 @@ Status: Active Description: Counterfit is a command-line tool and generic automation layer for assessing the security of machine learning systems. Genre: Security -Name: MQTT-Pwn +Name: MQTT-Pwn Source Code: https://github.com/akamai-threat-research/mqtt-pwn -Status: Stale -Description: MQTT-PWN intends to be a one-stop-shop for IoT Broker penetration-testing and security assessment operations +Status: Stale +Description: MQTT-PWN intends to be a one-stop-shop for IoT Broker penetration-testing and security assessment operations Genre: Security Name: OpenBeacon2 Source Code: https://github.com/etherkit/OpenBeacon2 Description: Commandline tool for interfacing with hardware in the [OpenBeacon](https://www.openbeacon.org/) environment. -Genre: Utility +Genre: Utility Name: GreenWaves-Technologies/gap_sdk Source Code: https://github.com/GreenWaves-Technologies/gap_sdk -Status: Active -Description: GAP SDK allows you to compile and execute applications on the GAP IoT Application Processor. +Status: Active +Description: GAP SDK allows you to compile and execute applications on the GAP IoT Application Processor. Genre: Utility, IoT -Name: JSShell +Name: JSShell Source Code: https://github.com/Den1al/JSShell -Status: Unknown -Description: An interactive multi-user web based javascript shell. -Genre: Utility, Web +Status: Unknown +Description: An interactive multi-user web based javascript shell. +Genre: Utility, Web -Name: pyOS +Name: pyOS Source Code: https://github.com/muhrin/pyos -Status: Active -Description: A fresh way to interact with your python objects as though they were files on your filesystem. -Genre: ???? +Status: Active +Description: A fresh way to interact with your python objects as though they were files on your filesystem. +Genre: ???? -Name: darkcode357/thg-framework +Name: darkcode357/thg-framework Source Code: https://github.com/darkcode357/thg-framework Status: Inactive Description: THG is a framework for security testing and ctf games, but it can be used as a library for exploit development. -Genre: Security +Genre: Security -Name: qsecure-labs/Overloard +Name: qsecure-labs/Overloard Source Code: https://github.com/qsecure-labs/overlord -Status: Active -Description: Overlord provides a python-based console CLI which is used to build Red Teaming infrastructure in an automated way. -Genre: Security +Status: Active +Description: Overlord provides a python-based console CLI which is used to build Red Teaming infrastructure in an automated way. +Genre: Security -Name: seemoo-lab/internalblue +Name: seemoo-lab/internalblue Source Code: https://github.com/seemoo-lab/internalblue -Status: Active +Status: Active Description: Bluetooth experimentation framework for Broadcom and Cypress chips. -Genre: utility +Genre: utility Name: icl-rocketry/Avionics Source Code: https://github.com/icl-rocketry/Avionics -Status: Active -Description: The main repository for hardware and software assosciated with the Ricardo Avionics Ecosystem. -Genre: Utility +Status: Active +Description: The main repository for hardware and software associated with the Ricardo Avionics Ecosystem. +Genre: Utility Name: jonny1102/nmap-parse Source Code: https://github.com/jonny1102/nmap-parse -Status: Inactive -Description: Command line nmap XML parser -Genre: Security +Status: Inactive +Description: Command line nmap XML parser +Genre: Security Name: cybiere/baboossh Source Code: https://github.com/cybiere/baboossh Status: Active -Description:SSH spreading made easy for red teams in a hurry -Genre: Security +Description:SSH spreading made easy for red teams in a hurry +Genre: Security Name: qilingframework/qiling Source Code: https://github.com/qilingframework/qiling -Status: Active +Status: Active Description: Qiling Advanced Binary Emulation Framework -Genre: Security +Genre: Security Name: JohnHammond/katana Source Code: https://github.com/JohnHammond/katana -Status: Active +Status: Active Description: Katana - Automatic CTF Challenge Solver in Python3 -Genre: Security - +Genre: Security diff --git a/tests/test_argparse.py b/tests/test_argparse.py index 7a682c5ce..4fe884b9a 100644 --- a/tests/test_argparse.py +++ b/tests/test_argparse.py @@ -312,7 +312,7 @@ def do_test_subcmd_decorator(self, args: argparse.Namespace): @cmd2.as_subcommand_to('test_subcmd_decorator', 'subcmd', subcmd_parser, help=subcmd_parser.description.lower()) def subcmd_func(self, args: argparse.Namespace): - # Make sure printing the Namespace works. The way we originally added cmd2_hander to it resulted in a RecursionError. + # Make sure printing the Namespace works. The way we originally added cmd2_handler to it resulted in a RecursionError. self.poutput(args) helpless_subcmd_parser = cmd2.Cmd2ArgumentParser(add_help=False, description="A subcommand with no help") @@ -321,7 +321,7 @@ def subcmd_func(self, args: argparse.Namespace): 'test_subcmd_decorator', 'helpless_subcmd', helpless_subcmd_parser, help=helpless_subcmd_parser.description.lower() ) def helpless_subcmd_func(self, args: argparse.Namespace): - # Make sure vars(Namespace) works. The way we originally added cmd2_hander to it resulted in a RecursionError. + # Make sure vars(Namespace) works. The way we originally added cmd2_handler to it resulted in a RecursionError. self.poutput(vars(args)) diff --git a/tests/test_argparse_completer.py b/tests/test_argparse_completer.py index a2fb89eb1..7368774c0 100644 --- a/tests/test_argparse_completer.py +++ b/tests/test_argparse_completer.py @@ -999,7 +999,7 @@ def test_completion_items_descriptive_header(ac_app): ('nargs --one_or_more', '-', True), # This flag has reached its minimum value count and therefore a new flag could start. # However the flag can still consume values and the text is not a single prefix character. - # Therefor a hint will be shown. + # Therefore a hint will be shown. ('nargs --one_or_more choices', 'bad_completion', True), # Like the previous case, but this time text is a single prefix character which will cause flag # name completion to occur instead of a hint for the current flag. diff --git a/tests/test_cmd2.py b/tests/test_cmd2.py index 92a955398..374ba10a2 100755 --- a/tests/test_cmd2.py +++ b/tests/test_cmd2.py @@ -1065,7 +1065,7 @@ def test_raise_keyboard_interrupt(base_app): assert 'Got a keyboard interrupt' in str(excinfo.value) -@pytest.mark.skipif(sys.platform.startswith('win'), reason="SIGTERM only handeled on Linux/Mac") +@pytest.mark.skipif(sys.platform.startswith('win'), reason="SIGTERM only handled on Linux/Mac") def test_termination_signal_handler(base_app): with pytest.raises(SystemExit) as excinfo: base_app.termination_signal_handler(signal.SIGHUP, 1) diff --git a/tests/test_completion.py b/tests/test_completion.py index 67f0fe075..18b7c0f27 100755 --- a/tests/test_completion.py +++ b/tests/test_completion.py @@ -384,7 +384,7 @@ def test_shell_command_completion_does_path_completion_when_after_command(cmd2_a assert first_match is not None and cmd2_app.completion_matches == [text + '.py '] -def test_shell_commmand_complete_in_path(cmd2_app, request): +def test_shell_command_complete_in_path(cmd2_app, request): test_dir = os.path.dirname(request.module.__file__) text = os.path.join(test_dir, 's') diff --git a/tests/test_parsing.py b/tests/test_parsing.py index 83df13cf5..e3d42d7c7 100755 --- a/tests/test_parsing.py +++ b/tests/test_parsing.py @@ -503,7 +503,7 @@ def test_parse_output_to_paste_buffer(parser): def test_parse_redirect_inside_terminator(parser): - """The terminator designates the end of the commmand/arguments portion. + """The terminator designates the end of the command/arguments portion. If a redirector occurs before a terminator, then it will be treated as part of the arguments and not as a redirector.""" line = 'has > inside;' diff --git a/tests/test_plugin.py b/tests/test_plugin.py index eb91892c4..5a625b724 100644 --- a/tests/test_plugin.py +++ b/tests/test_plugin.py @@ -38,7 +38,7 @@ def reset_counters(self): ### # # preloop and postloop hooks - # which share the same signature and are thus interchangable + # which share the same signature and are thus interchangeable # ### def prepost_hook_one(self) -> None: