New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

runcommands

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

runcommands

A framework for writing console scripts and running commands

  • 1.0a72
  • PyPI
  • Socket score

Maintainers
1

RunCommands +++++++++++

A simple command runner that uses argparse from the Python standard library under the hood. Runs on Python 3 only (3.9 and up). Uses annotations to configure options.

There are two basic use cases:

  1. Standalone console scripts (including scripts with subcommands).
  2. Collections of commands (similar to make, Fabric, etc).

Building on these, especially #2, there are a couple of more advanced use cases:

  1. A simple orchestration/deployment tool. If you have a simple build process and just need to rsync some files to a server, a few simple commands might be all you need.
  2. A wrapper for more sophisticated orchestration/deployment tools--an alternative to the Bash scripts you might use to drive Ansible playbooks and the like.

Basic Usage

Define a command:

.. code-block:: python

from runcommands import arg, command
from runcommands.commands import local

@command
def test(*tests: arg(help='Specific tests to run (instead of using discovery)')):
    if tests:
        local(('python', '-m', 'unittest', tests))
    else:
        local('python -m unittest discover .')

Show its help::

> run test -h
test [-h] [TESTS [TESTS ...]]

positional arguments:
  TESTS       Specific tests to run (instead of using discovery)

optional arguments:
  -h, --help  show this help message and exit

Run it::

> run test
..........
----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

Create a standalone console script using a standard setuptools entry point:

.. code-block:: python

# setup.py
setup(
    ...
    entry_points="""
    [console_scripts]
    my-test-script = package.module:test.console_script

    """
)

Run it (after reinstalling the package)::

> my-test-script
..........
----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

See the main documentation_ for more information on installation, defining & running commands, configuration, etc.

Features

  • Easily create standalone console scripts: simply define a function and wrap it with the @command decorator.
  • Easily create standalone console scripts that have subcommands (a la git).
  • Create collections of commands (similar to make, Fabric, etc).
  • Run multiple commands in sequence: run build deploy.
  • Uses argparse under the hood so command line usage is familiar.
  • Provides built-in help/usage for all commands via argparse.
  • Provides command line completion (including example scripts for bash and fish).

Documentation

Detailed documentation is on Read the Docs_.

License

MIT. See the LICENSE file in the source distribution.

TODO

  • Improve command line completion
  • Add more documentation and examples
  • Write tests

.. _main documentation: http://runcommands.readthedocs.io/ .. Read the Docs: main documentation

Keywords

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc