javaclass

Annotated runclass.py

120:14b1b75cd8c2
2005-01-13 Paul Boddie Fixed the importing of package classes.
paul@118 1
#!/usr/bin/env python
paul@118 2
paul@118 3
"Run class files."
paul@118 4
paul@118 5
import classhook
paul@118 6
paul@118 7
def load_class(class_name):
paul@118 8
paul@118 9
    "Load the class with the given 'class_name'."
paul@118 10
paul@118 11
    class_name_parts = class_name.split(".")
paul@118 12
    if len(class_name_parts) == 1:
paul@118 13
        module = __import__("__this__", globals(), locals(), [class_name])
paul@118 14
        obj = getattr(module, class_name)
paul@118 15
    else:
paul@120 16
        class_module = ".".join(class_name_parts[:-1])
paul@120 17
        obj = __import__(class_module, globals(), locals())
paul@118 18
        for part in class_name_parts[1:]:
paul@118 19
            obj = getattr(obj, part)
paul@118 20
paul@118 21
    return obj
paul@118 22
paul@118 23
def run_class(cls, args):
paul@118 24
    cls.main(args)
paul@118 25
paul@118 26
if __name__ == "__main__":
paul@118 27
    import sys
paul@118 28
    cls = load_class(sys.argv[1])
paul@118 29
    run_class(cls, sys.argv[2:])
paul@118 30
paul@118 31
# vim: tabstop=4 expandtab shiftwidth=4