Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

clips

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

clips

Parser for command-line applications.

  • 1.1.0
  • PyPI
  • Socket score

Maintainers
1

Clips

A simple parser for building graceful command-line interfaces, with chained commands and colorful usage messages. Clips uses getopt for parsing command arguments and options (scanning mode is GNU-flavoured).

Colors are implemented through ANSI codes and they are not expected to work on Windows. More generally, please note that Clips is not tested for Windows environment.

Quick start

Install with pip:

pip install clips

Usage example

A console with a chained command:

from clips import ArgParser

# init console
console = ArgParser(
    'myconsole',                # prog. name
    description=description,    # prog. description
    banner=banner               # usage banner
)

# add a console-level argument
console.add_argument('-v', '--version', help='Show version')

# add a console command
cmd = console.add_command('command', help='A command')

# add a subcommand
subcmd = cmd.add_command('subcommand', help='A subcommand')

# add an argument to subcommand
subcmd.add_argument('arg', help='Argument for this subcommand')

Parsing method returns a dictionary of user context,

# parse arguments
args = console.parse_args(['command', 'subcommand', 'this'])
print(args)

so that output is:

{
    '-h': False,
    '--help': False,
    '-v': False,
    '--version': False,
    'command': True,
    'subcommand': True,
    'arg': 'this'
}

Argument can have default values:

console.add_argument('-o', '--opt', valued=True, default=10)

To display usage help:

# console-level usage
print(console.usage_help())

# command-level usage
print(console.usage_help(['command']))
print(console.usage_help(['command', 'subcommand']))

To disable internal management of help option:

# init console
console = ArgParser(
    'myconsole',                # prog. name
    add_help=False              # no help hook
)

Use colors for title and text:

# init console
console = ArgParser(
    'myconsole',                # prog. name
    title_fg='orange',          # title foreground color
    title_bg='green',           # title background color
    text_fg='green',            # text foreground color
    text_bg='orange'            # text background color
    )

Group commands by sections (this affects only usage help):

# create section with commands
console.add_section('First section')
cmd1 = console.add_command('cmd1')
cmd2 = console.add_command('cmd2')

# another section
console.add_section('Second section')
cmd3 = console.add_command('cmd3')
cmd4 = console.add_command('cmd4')

Available colors for titles and text parts:

  • foreground: black, red, green, orange, blue, cyan, lightgrey, darkgrey, lightred, lightgreen, yellow, lightblue, pink, lightcyan
  • background: black, red, green, orange, blue, purple, cyan, lightgrey

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