aboutsummaryrefslogtreecommitdiff
path: root/devel/py-knack/pkg-descr
blob: 81796e2ddfd04be11747bb2f5d5a23d2de208ea0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Knack is a Python command line parsing framework.  Knack is built around the
following patterns:
 - Be consistent with POSIX tools.
 - CLI success comes from ease and predictability of use so be consistent.
 - Support Piping and output direction to chain commands together.
 - Work with GREP, AWK, JQ and other common tools and commands.
 - Support productivity features like tab completion and parameter value
   completion.
 - Commands should follow a "[noun] [noun] [verb]" pattern.
 - For nouns that only support a single verb, the command should be named as a
   single hyphenated verb-noun pair.
 - Commands should support all output types (be consistent).
 - Exceptions are okay if only a 'raw' format makes sense e.g. XML.
 - Commands and arguments should have descriptions.
 - Include examples for the less straightforward commands.
 - Commands should return an object or dictionary, not strings/bools/etc.;
   logging.info("Upload of myfile.txt successful") NOT return
   "Upload successful".
 - Log to ERROR or WARNING for user messages; don't use print() function (by
   default it goes to STDOUT).
 - STDOUT vs. STDERR: STDOUT is used for actual command output. Everything
   else to STDERR (e.g. log/status/error messages).

WWW: https://github.com/Microsoft/knack