Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Argument Parsing for Humans™
tree: 206420a32e

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.gitignore
.travis.yml
AUTHORS.rst
LICENSE
README.rst
args.py
requirements.txt
setup.py
tests.py

README.rst

args

Argument Parsing for Humans.

Usage

Here's an example application:

import args

print 'Arguments passed in: ' + str(args.all)
print 'Flags detected: ' + str(args.flags)
print 'Files detected: ' + str(args.files)
print 'NOT files detected: ' + str(args.not_files)
print 'Grouped Arguments: ' + str(args.grouped)
print 'Assignments detected: ' + str(args.assignments)

No arguments:

$ tool
Arguments passed in: []
Flags detected: <args []>
Files detected: []
NOT files detected: <args []>
Grouped Arguments: OrderedDict([('_', <args []>)])
Assignments detected: OrderedDict()

A few arguments:

$ tool -s yes no --number=one --letter a b c --number=two
Arguments passed in: ['-s', 'yes', 'no', '--number=one', '--letter', 'a', 'b', 'c', '--number=two']
Flags detected: <args ['-s', '--number=one', '--letter', '--number=two']>
Files detected: []
NOT files detected: <args ['-s', 'yes', 'no', '--number=one', '--letter', 'a', 'b', 'c', '--number=two']>
Grouped Arguments: OrderedDict([('_', <args []>), ('-s', <args ['yes', 'no']>), ('--number=one', <args []>), ('--letter', <args ['a', 'b', 'c']>), ('--number=two', <args []>)])
Assignments detected: OrderedDict([('--number', <args ['one', 'two']>)])

A few expanded file arguments:

$ tool *.py
Arguments passed in: ['args.py', 'setup.py', 'tests.py']
Flags detected: <args []>
Files detected: ['args.py', 'setup.py', 'tests.py']
NOT files detected: <args []>
Grouped Arguments: OrderedDict([('_', <args ['args.py', 'setup.py', 'tests.py']>)])
Assignments detected: OrderedDict()

A few non-expanded file arguments:

$ tool '*.py'
Arguments passed in: ['*.py']
Flags detected: <args []>
Files detected: ['args.py', 'setup.py', 'tests.py']
NOT files detected: <args []>
Grouped Arguments: OrderedDict([('_', <args ['*.py']>)])
Assignments detected: OrderedDict()

A few mixed files/flags/arguments:

Arguments passed in: ['*.py', '--letter', 'a', 'b', 'c', '-s', '/home/example/.example', '--number=one', '--number=two']
Flags detected: <args ['--letter', '-s', '--number=one', '--number=two']>
Files detected: ['setup.py', 'args.py', 'tool.py', 'tests.py', '/home/example/.example/two', '/home/example/.example/one']
NOT files detected: <args ['--letter', 'a', 'b', 'c', '-s', '--number=one', '--number=two']>
Grouped Arguments: OrderedDict([('_', <args ['*.py']>), ('--letter', <args ['a', 'b', 'c']>), ('-s', <args ['/home/example/.example']>), ('--number=one', <args []>), ('--number=two', <args []>)])
Assignments detected: OrderedDict([('--number', <args ['one', 'two']>)])

Installation

Installation is simple with pip:

$ pip install args
Something went wrong with that request. Please try again.