Mercurial > hg > pyloader
annotate pyloader/invoke.py @ 3:65d9a7c7ac63
other misc improvements
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Tue, 10 May 2011 10:26:19 -0700 |
parents | 6cb7696edc4d |
children | 5ce55f6c8964 |
rev | line source |
---|---|
2
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 import inspect |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 def call(obj, *args, **kwargs): |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 """call a thing with string arguments""" |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
5 inspected = obj |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
6 if inspect.isclass(obj): |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 inspected = obj.__init__ # inspect the ctor |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 argspec = inspect.getargspec(inspected) |
6cb7696edc4d
add some more stuff for string loady type things and rearrange structure
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 |
3 | 10 if __name__ == '__main__': |
11 import sys | |
12 from loader import load | |
13 from optparse import OptionParser | |
14 usage = '%prog Object arg1=value1 arg2=value2 [...]' | |
15 description = 'invoke an Object given string arguments' | |
16 parser = OptionParser(usage=usage, description=description) | |
17 args = sys.argv[1:] | |
18 if not args: | |
19 parser.print_usage() | |
20 parser.exit() | |
21 obj_args = dict([i.split('=', 1) for i in args[1:]]) | |
22 obj = load(args[0]) | |
23 print call(obj, **obj_args) |