1import objc
2from AppKit import __bundle__
3
4class _NSApp (object):
5    """
6    Helper class to emulate NSApp in Python.
7    """
8    def __getrealapp(self):
9        d = {}
10        objc.loadBundleVariables(__bundle__, d, [ ('NSApp', b'@' ) ])
11        return d.get('NSApp')
12
13    __class__ = property(lambda self: self.__getrealapp().__class__)
14
15    def __getattr__(self, name):
16        return getattr(self.__getrealapp(), name)
17
18    def __setattr__(self, name, value):
19        return setattr(self.__getrealapp(), name, value)
20
21    def __call__(self):
22        # Compatibility with previous versions.
23        return self.__getrealapp()
24
25NSApp = _NSApp()
26del _NSApp
27