Python inspect.classify_class_attrs() Examples
The following are 30
code examples of inspect.classify_class_attrs().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
inspect
, or try the search function
.
Example #1
Source File: target.py From doubles with MIT License | 6 votes |
def _generate_attrs(self): """Get detailed info about target object. Uses ``inspect.classify_class_attrs`` to get several important details about each attribute on the target object. :return: The attribute details dict. :rtype: dict """ attrs = {} if ismodule(self.doubled_obj): for name, func in getmembers(self.doubled_obj, is_callable): attrs[name] = Attribute(func, 'toplevel', self.doubled_obj) else: for attr in classify_class_attrs(self.doubled_obj_type): attrs[attr.name] = attr return attrs
Example #2
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_classify_VirtualAttribute(self): class Meta(type): def __dir__(cls): return ['__class__', '__module__', '__name__', 'BOOM'] def __getattr__(self, name): if name =='BOOM': return 42 return super().__getattr(name) class Class(metaclass=Meta): pass should_find = inspect.Attribute('BOOM', 'data', Meta, 42) self.assertIn(should_find, inspect.classify_class_attrs(Class))
Example #3
Source File: pydoc.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" def fixup(data): name, kind, cls, value = data if inspect.isdatadescriptor(value): kind = 'data descriptor' return name, kind, cls, value return map(fixup, inspect.classify_class_attrs(object)) # ----------------------------------------------------- module manipulation
Example #4
Source File: pydoc.py From PokemonGo-DesktopMap with MIT License | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" def fixup(data): name, kind, cls, value = data if inspect.isdatadescriptor(value): kind = 'data descriptor' return name, kind, cls, value return map(fixup, inspect.classify_class_attrs(object)) # ----------------------------------------------------- Unicode support helpers
Example #5
Source File: test_inspect.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def attrs_wo_objs(cls): return [t[:3] for t in inspect.classify_class_attrs(cls)]
Example #6
Source File: test_inspect.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def test_classify_oldstyle(self): """classify_class_attrs finds static methods, class methods, properties, normal methods, and data attributes on an old-style class. """ self._classify_test(False)
Example #7
Source File: test_inspect.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def __getattr__(*args): raise AssertionError("should not __getattr__ method descriptors") # Helper for testing classify_class_attrs.
Example #8
Source File: pydoc.py From canape with GNU General Public License v3.0 | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" def fixup(data): name, kind, cls, value = data if inspect.isdatadescriptor(value): kind = 'data descriptor' return name, kind, cls, value return map(fixup, inspect.classify_class_attrs(object)) # ----------------------------------------------------- module manipulation
Example #9
Source File: gate.py From anchore-engine with Apache License 2.0 | 5 votes |
def _parameters(cls): """ Returns a dict containing the class attribute name-to-object mapping in this class definition. :return: dict of (name -> obj) tuples enumerating all TriggerParameter objects defined for this class """ return {x.name: x.object for x in [attr for attr in inspect.classify_class_attrs(cls) if attr.kind == 'data' and isinstance(attr.object, anchore_engine.services.policy_engine.engine.policy.params.TriggerParameter)]}
Example #10
Source File: pydoc.py From android_universal with MIT License | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" results = [] for (name, kind, cls, value) in inspect.classify_class_attrs(object): if inspect.isdatadescriptor(value): kind = 'data descriptor' results.append((name, kind, cls, value)) return results
Example #11
Source File: pydoc.py From unity-python with MIT License | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" def fixup(data): name, kind, cls, value = data if inspect.isdatadescriptor(value): kind = 'data descriptor' return name, kind, cls, value return map(fixup, inspect.classify_class_attrs(object)) # ----------------------------------------------------- Unicode support helpers
Example #12
Source File: pydoc.py From CTFCrackTools with GNU General Public License v3.0 | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" def fixup(data): name, kind, cls, value = data if inspect.isdatadescriptor(value): kind = 'data descriptor' return name, kind, cls, value return map(fixup, inspect.classify_class_attrs(object)) # ----------------------------------------------------- module manipulation
Example #13
Source File: pydoc.py From medicare-demo with Apache License 2.0 | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" def fixup((name, kind, cls, value)): if inspect.isdatadescriptor(value): kind = 'data descriptor' return name, kind, cls, value return map(fixup, inspect.classify_class_attrs(object)) # ----------------------------------------------------- module manipulation
Example #14
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_classify_class_attrs_with_buggy_dir(self): class M(type): def __dir__(cls): return ['__class__', '__name__', 'missing'] class C(metaclass=M): pass attrs = [a[0] for a in inspect.classify_class_attrs(C)] self.assertNotIn('missing', attrs)
Example #15
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_classify_VirtualAttribute_multi_classes(self): class Meta1(type): def __dir__(cls): return ['__class__', '__module__', '__name__', 'one'] def __getattr__(self, name): if name =='one': return 1 return super().__getattr__(name) class Meta2(type): def __dir__(cls): return ['__class__', '__module__', '__name__', 'two'] def __getattr__(self, name): if name =='two': return 2 return super().__getattr__(name) class Meta3(Meta1, Meta2): def __dir__(cls): return list(sorted(set(['__class__', '__module__', '__name__', 'three'] + Meta1.__dir__(cls) + Meta2.__dir__(cls)))) def __getattr__(self, name): if name =='three': return 3 return super().__getattr__(name) class Class1(metaclass=Meta1): pass class Class2(Class1, metaclass=Meta3): pass should_find1 = inspect.Attribute('one', 'data', Meta1, 1) should_find2 = inspect.Attribute('two', 'data', Meta2, 2) should_find3 = inspect.Attribute('three', 'data', Meta3, 3) cca = inspect.classify_class_attrs(Class2) for sf in (should_find1, should_find2, should_find3): self.assertIn(sf, cca)
Example #16
Source File: test_inspect.py From medicare-demo with Apache License 2.0 | 5 votes |
def attrs_wo_objs(cls): return [t[:3] for t in inspect.classify_class_attrs(cls)]
Example #17
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_classify_metaclass_class_attribute(self): class Meta(type): fish = 'slap' def __dir__(self): return ['__class__', '__module__', '__name__', 'fish'] class Class(metaclass=Meta): pass should_find = inspect.Attribute('fish', 'data', Meta, 'slap') self.assertIn(should_find, inspect.classify_class_attrs(Class))
Example #18
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_classify_overrides_bool(self): class NoBool(object): def __eq__(self, other): return NoBool() def __bool__(self): raise NotImplementedError( "This object does not specify a boolean value") class HasNB(object): dd = NoBool() should_find_attr = inspect.Attribute('dd', 'data', HasNB, HasNB.dd) self.assertIn(should_find_attr, inspect.classify_class_attrs(HasNB))
Example #19
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_classify_builtin_types(self): # Simple sanity check that all built-in types can have their # attributes classified. for name in dir(__builtins__): builtin = getattr(__builtins__, name) if isinstance(builtin, type): inspect.classify_class_attrs(builtin)
Example #20
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def attrs_wo_objs(cls): return [t[:3] for t in inspect.classify_class_attrs(cls)]
Example #21
Source File: test_inspect.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def __getattr__(*args): raise AttributeError("broken method descriptor") # Helper for testing classify_class_attrs.
Example #22
Source File: test_enum.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def test_inspect_classify_class_attrs(self): # indirectly test __objclass__ from inspect import Attribute values = [ Attribute(name='__class__', kind='data', defining_class=object, object=EnumMeta), Attribute(name='__doc__', kind='data', defining_class=self.Color, object='An enumeration.'), Attribute(name='__members__', kind='property', defining_class=EnumMeta, object=EnumMeta.__members__), Attribute(name='__module__', kind='data', defining_class=self.Color, object=__name__), Attribute(name='blue', kind='data', defining_class=self.Color, object=self.Color.blue), Attribute(name='green', kind='data', defining_class=self.Color, object=self.Color.green), Attribute(name='red', kind='data', defining_class=self.Color, object=self.Color.red), Attribute(name='name', kind='data', defining_class=Enum, object=Enum.__dict__['name']), Attribute(name='value', kind='data', defining_class=Enum, object=Enum.__dict__['value']), ] values.sort(key=lambda item: item.name) result = list(inspect.classify_class_attrs(self.Color)) result.sort(key=lambda item: item.name) failed = False for v, r in zip(values, result): if r != v: print('\n%s\n%s\n%s\n%s\n' % ('=' * 75, r, v, '=' * 75), sep='') failed = True if failed: self.fail("result does not equal expected, see print above")
Example #23
Source File: pydoc.py From Project-New-Reign---Nemesis-Main with GNU General Public License v3.0 | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" results = [] for (name, kind, cls, value) in inspect.classify_class_attrs(object): if inspect.isdatadescriptor(value): kind = 'data descriptor' results.append((name, kind, cls, value)) return results # ----------------------------------------------------- module manipulation
Example #24
Source File: pydoc.py From Splunking-Crime with GNU Affero General Public License v3.0 | 5 votes |
def classify_class_attrs(object): """Wrap inspect.classify_class_attrs, with fixup for data descriptors.""" def fixup(data): name, kind, cls, value = data if inspect.isdatadescriptor(value): kind = 'data descriptor' return name, kind, cls, value return map(fixup, inspect.classify_class_attrs(object)) # ----------------------------------------------------- Unicode support helpers
Example #25
Source File: test_inspect.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_classify_builtin_types(self): # Simple sanity check that all built-in types can have their # attributes classified. for name in dir(__builtin__): builtin = getattr(__builtin__, name) if isinstance(builtin, type): inspect.classify_class_attrs(builtin)
Example #26
Source File: test_inspect.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_classify_oldstyle(self): """classify_class_attrs finds static methods, class methods, properties, normal methods, and data attributes on an old-style class. """ self._classify_test(False)
Example #27
Source File: test_inspect.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def attrs_wo_objs(cls): return [t[:3] for t in inspect.classify_class_attrs(cls)]
Example #28
Source File: test_inspect.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def __getattr__(*args): raise AssertionError("should not __getattr__ method descriptors") # Helper for testing classify_class_attrs.
Example #29
Source File: fileStoreTest.py From toil with Apache License 2.0 | 5 votes |
def _exportStaticMethodAsGlobalFunctions(cls): """ Define utility functions because Toil can't pickle static methods. Note that this relies on the convention that the first argument of a job function is named 'job'. """ for name, kind, clazz, value in inspect.classify_class_attrs(cls): if kind == 'static method' and name != '__new__': # __new__ became static in 3.7 method = value.__func__ args = inspect.getfullargspec(method).args if args and args[0] == 'job': globals()[name] = method
Example #30
Source File: test_inspect.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_classify_class_attrs_with_buggy_dir(self): class M(type): def __dir__(cls): return ['__class__', '__name__', 'missing'] class C(metaclass=M): pass attrs = [a[0] for a in inspect.classify_class_attrs(C)] self.assertNotIn('missing', attrs)