MCPcopy Create free account
hub / github.com/dtmilano/AndroidViewClient / __getattr__

Method __getattr__

src/com/dtmilano/android/viewclient.py:406–499  ·  view source on GitHub ↗
(self, name)

Source from the content-addressed store, hash-verified

404 return self.map[key]
405
406 def __getattr__(self, name):
407 if DEBUG_GETATTR:
408 print("__getattr__(%s) version: %d" % (name, self.build[VERSION_SDK_PROPERTY]), file=sys.stderr)
409 print("__getattr__: map = %s" % self.map, file=sys.stderr)
410
411 # NOTE:
412 # I should try to see if 'name' is a defined method
413 # but it seems that if I call locals() here an infinite loop is entered
414
415 if name in self.map:
416 r = self.map[name]
417 elif name + '()' in self.map:
418 # the method names are stored in the map with their trailing '()'
419 r = self.map[name + '()']
420 elif name in ['getResourceId', 'resource_id', 'id']:
421 if DEBUG_GETATTR:
422 print(" __getattr__: getResourceId", file=sys.stderr)
423 if 'resource-id' in self.map:
424 r = self.map['resource-id']
425 else:
426 # Default behavior
427 raise AttributeError(name)
428 elif name == 'unique_id':
429 if 'uniqueId' in self.map:
430 r = self.map['uniqueId']
431 elif 'unique-id' in self.map:
432 r = self.map['unique_id']
433 elif 'unique_id' in self.map:
434 r = self.map['unique_id']
435 else:
436 # Default behavior
437 raise AttributeError(name)
438 elif name == 'content_description':
439 if 'content_description' in self.map:
440 r = self.map['content_description']
441 elif 'content-desc' in self.map:
442 r = self.map['content-desc']
443 else:
444 # Default behavior
445 raise AttributeError(name)
446 elif name.count("_") > 0:
447 mangledList = self.allPossibleNamesWithColon(name)
448 mangledName = self.intersection(mangledList, list(self.map.keys()))
449 if len(mangledName) > 0 and mangledName[0] in self.map:
450 r = self.map[mangledName[0]]
451 else:
452 # Default behavior
453 raise AttributeError(name)
454 elif name.startswith('is'):
455 # try removing 'is' prefix
456 if DEBUG_GETATTR:
457 print(" __getattr__: trying without 'is' prefix", file=sys.stderr)
458 suffix = name[2:].lower()
459 if suffix in self.map:
460 r = self.map[suffix]
461 else:
462 # Default behavior
463 raise AttributeError(name)

Callers 1

isClickableMethod · 0.95

Calls 2

intersectionMethod · 0.95

Tested by

no test coverage detected