Werkzeug-style command parsing.
Project description
# commandlet
Werkzeug-style commands.
## Usage
```
from commandlet.parser import Parser
p = Parser()
@p.command('test', 'test <int:times> <str:string>')
def do_test(times, string):
"""Test a certain number of times."""
for n in range(times):
print('[%d]: %s' % (n, string))
p.handle_command('test 4 Hello world.')
```
As you can see, you can decorate functions with the Parser.command decorator to make them callable. They should all be given a name (used for pretty-printing mainly), and an argument string, which looks very similar to those seen in command line programs... And [Werkzeug](https://palletsprojects.com/p/werkzeug/).
You can also add extra filters:
```
@p.filter('reverse')
def do_reverse(text):
return (text, ''.join(reversed(text)))
@p.command('reverse', 'reverse <reverse:string>')
def reverse_command(string):
original, new = string
print('Reversing %r gives %r.' % (original, new))
```
You can see the full list of filters by examining the Parser.filters dictionary. By default, str, int, and float are supported.
Werkzeug-style commands.
## Usage
```
from commandlet.parser import Parser
p = Parser()
@p.command('test', 'test <int:times> <str:string>')
def do_test(times, string):
"""Test a certain number of times."""
for n in range(times):
print('[%d]: %s' % (n, string))
p.handle_command('test 4 Hello world.')
```
As you can see, you can decorate functions with the Parser.command decorator to make them callable. They should all be given a name (used for pretty-printing mainly), and an argument string, which looks very similar to those seen in command line programs... And [Werkzeug](https://palletsprojects.com/p/werkzeug/).
You can also add extra filters:
```
@p.filter('reverse')
def do_reverse(text):
return (text, ''.join(reversed(text)))
@p.command('reverse', 'reverse <reverse:string>')
def reverse_command(string):
original, new = string
print('Reversing %r gives %r.' % (original, new))
```
You can see the full list of filters by examining the Parser.filters dictionary. By default, str, int, and float are supported.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
commandlet-0.3.0.tar.gz
(10.7 kB
view details)
Built Distribution
File details
Details for the file commandlet-0.3.0.tar.gz
.
File metadata
- Download URL: commandlet-0.3.0.tar.gz
- Upload date:
- Size: 10.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50eb4ba71f251f41fbb179854abf88afbdfd02ceb36f7544f946e855cdb55548 |
|
MD5 | ec77ccb7ee40dfa08b141a87b52c2a09 |
|
BLAKE2b-256 | 2e4ca9c858188fda9e25b3abd1ea837ec3928f9d312ac8ad4db3379f6827f968 |
Provenance
File details
Details for the file commandlet-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: commandlet-0.3.0-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/41.0.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7fac89f817c23ef761ef79b04ae0fc6506ef359a1c69bc19c71114c977792342 |
|
MD5 | acf5d55faf9924e1949a234909432d7a |
|
BLAKE2b-256 | a59ddbd544efdfc7aed86b32aa478843fc6a8b361d39437a28c9ab02829ce5fa |