Mercurial > hg > MakeItSo
annotate makeitso/python_package/{{package}}/{{main}}.py @ 197:bb57bec165b7
fix errors with template
| author | Jeff Hammel <k0scist@gmail.com> |
|---|---|
| date | Mon, 09 Jun 2014 20:25:45 -0700 |
| parents | d25ca7099df8 |
| children | be7e2e336d7a |
| rev | line source |
|---|---|
| 79 | 1 #!/usr/bin/env python |
| 159 | 2 # -*- coding: utf-8 -*- |
| 79 | 3 |
| 4 """ | |
| 5 {{description}} | |
| 6 """ | |
| 7 | |
|
187
74f41d53b057
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
161
diff
changeset
|
8 # imports |
| 188 | 9 import argparse |
| 159 | 10 import os |
| 11 import subprocess | |
| 79 | 12 import sys |
| 159 | 13 |
|
195
3cb66c9e5ce8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
188
diff
changeset
|
14 # module globals |
|
3cb66c9e5ce8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
188
diff
changeset
|
15 __all__ = ['main', 'Parser'] |
|
187
74f41d53b057
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
161
diff
changeset
|
16 here = os.path.dirname(os.path.realpath(__file__)) |
| 188 | 17 string = (str, unicode) |
|
187
74f41d53b057
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
161
diff
changeset
|
18 |
|
196
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
19 def ensure_dir(directory): |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
20 """ensure a directory exists""" |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
21 if os.path.exists(directory): |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
22 assert os.path.isdir(directory) |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
23 return directory |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
24 os.makedirs(directory) |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
25 return directory |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
26 |
| 188 | 27 |
| 28 class Parser(argparse.ArgumentParser): | |
| 29 """CLI option parser""" | |
| 30 def __init__(self): | |
| 31 argparse.ArgumentParser.__init__(self, description=__doc__) | |
|
196
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
32 self.options = None |
| 188 | 33 |
|
196
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
34 def parse_args(self, *args, **kw): |
| 197 | 35 options = argparse.ArgumentParser.parse_args(self, *args, **kw) |
|
196
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
36 self.validate(options) |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
37 self.options = options |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
38 return options |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
39 |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
40 def validate(self, options): |
|
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
41 """validate options""" |
| 79 | 42 |
|
155
386a44a52139
moving to a thing with script template
Jeff Hammel <jhammel@mozilla.com>
parents:
149
diff
changeset
|
43 def main(args=sys.argv[1:]): |
| 188 | 44 """CLI""" |
|
130
d9201f911458
better description formatting
Jeff Hammel <jhammel@mozilla.com>
parents:
79
diff
changeset
|
45 |
| 139 | 46 # parse command line options |
| 197 | 47 parser = Parser() |
| 188 | 48 options = parser.parse_args(args) |
| 79 | 49 |
| 50 if __name__ == '__main__': | |
|
196
d25ca7099df8
STUB: makeitso/python_package/{{package}}/{{main}}.py
Jeff Hammel <k0scist@gmail.com>
parents:
195
diff
changeset
|
51 main() |
