def processes(): """processes returns a list of all active processes running on this computer and their creators.""" finder = _getfinder() args = {} attrs = {} processnames = [] processnumbers = [] creators = [] partitions = [] used = [] ## get the processnames or else the processnumbers args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'), form="indx", seld=aetypes.Unknown( 'abso', "all "), fr=None) _reply, args, attrs = finder.send('core', 'getd', args, attrs) if args.has_key('errn'): raise Error, aetools.decodeerror(args) p = [] if args.has_key('----'): p = args['----'] for proc in p: if hasattr(proc, 'seld'): # it has a real name processnames.append(proc.seld) elif hasattr(proc, 'type'): if proc.type == "psn ": # it has a process number processnumbers.append(proc.data) ## get the creators args = {} attrs = {} aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'), form="indx", seld=aetypes.Unknown('abso', "all "), fr=None) args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form="prop", seld=aetypes.Type('fcrt'), fr=aeobj_0) _reply, args, attrs = finder.send('core', 'getd', args, attrs) if args.has_key('errn'): raise Error, aetools.decodeerror(_arg) if args.has_key('----'): p = args['----'] creators = p[:] ## concatenate in one dict result = [] if len(processnames) > len(processnumbers): data = processnames else: data = processnumbers for i in range(len(creators)): result.append((data[i], creators[i])) return result
def processes(): """processes returns a list of all active processes running on this computer and their creators.""" finder = _getfinder() args = {} attrs = {} processnames = [] processnumbers = [] creators = [] partitions = [] used = [] args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'), form='indx', seld=aetypes.Unknown( 'abso', 'all '), fr=None) _reply, args, attrs = finder.send('core', 'getd', args, attrs) if 'errn' in args: raise Error, aetools.decodeerror(args) p = [] if '----' in args: p = args['----'] for proc in p: if hasattr(proc, 'seld'): processnames.append(proc.seld) elif hasattr(proc, 'type'): if proc.type == 'psn ': processnumbers.append(proc.data) args = {} attrs = {} aeobj_0 = aetypes.ObjectSpecifier(want=aetypes.Type('prcs'), form='indx', seld=aetypes.Unknown('abso', 'all '), fr=None) args['----'] = aetypes.ObjectSpecifier(want=aetypes.Type('prop'), form='prop', seld=aetypes.Type('fcrt'), fr=aeobj_0) _reply, args, attrs = finder.send('core', 'getd', args, attrs) if 'errn' in args: raise Error, aetools.decodeerror(_arg) if '----' in args: p = args['----'] creators = p[:] result = [] if len(processnames) > len(processnumbers): data = processnames else: data = processnumbers for i in range(len(creators)): result.append((data[i], creators[i])) return result
class TestAepack(unittest.TestCase): OBJECTS = [ aetypes.Enum('enum'), aetypes.Type('type'), aetypes.Keyword('kwrd'), aetypes.Range(1, 10), aetypes.Comparison(1, '< ', 10), aetypes.Logical('not ', 1), aetypes.IntlText(0, 0, 'international text'), aetypes.IntlWritingCode(0,0), aetypes.QDPoint(50,100), aetypes.QDRectangle(50,100,150,200), aetypes.RGBColor(0x7000, 0x6000, 0x5000), aetypes.Unknown('xxxx', 'unknown type data'), aetypes.Character(1), aetypes.Character(2, aetypes.Line(2)), ] def test_roundtrip_string(self): o = 'a string' packed = aepack.pack(o) unpacked = aepack.unpack(packed) self.assertEqual(o, unpacked) def test_roundtrip_int(self): o = 12 packed = aepack.pack(o) unpacked = aepack.unpack(packed) self.assertEqual(o, unpacked) def test_roundtrip_float(self): o = 12.1 packed = aepack.pack(o) unpacked = aepack.unpack(packed) self.assertEqual(o, unpacked) def test_roundtrip_None(self): o = None packed = aepack.pack(o) unpacked = aepack.unpack(packed) self.assertEqual(o, unpacked) def test_roundtrip_aeobjects(self): for o in self.OBJECTS: packed = aepack.pack(o) unpacked = aepack.unpack(packed) self.assertEqual(repr(o), repr(unpacked)) def test_roundtrip_FSSpec(self): try: import Carbon.File except: return o = Carbon.File.FSSpec(os.curdir) packed = aepack.pack(o) unpacked = aepack.unpack(packed) self.assertEqual(o.as_pathname(), unpacked.as_pathname()) def test_roundtrip_Alias(self): try: import Carbon.File except: return o = Carbon.File.FSSpec(os.curdir).NewAliasMinimal() packed = aepack.pack(o) unpacked = aepack.unpack(packed) self.assertEqual(o.FSResolveAlias(None)[0].as_pathname(), unpacked.FSResolveAlias(None)[0].as_pathname())
def mkunknown(type, data): return aetypes.Unknown(type, data)
"""Utility routines depending on the finder,
'''
"""Tools for use in AppleEvent clients and servers: