Python abc.ABCMeta() Examples
The following are 30
code examples of abc.ABCMeta().
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
abc
, or try the search function
.
Example #1
Source File: test_descr.py From oss-ftp with MIT License | 6 votes |
def test_slots_descriptor(self): # Issue2115: slot descriptors did not correctly check # the type of the given object import abc class MyABC: __metaclass__ = abc.ABCMeta __slots__ = "a" class Unrelated(object): pass MyABC.register(Unrelated) u = Unrelated() self.assertIsInstance(u, MyABC) # This used to crash self.assertRaises(TypeError, MyABC.a.__set__, u, 3)
Example #2
Source File: test_inspect.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_isabstract(self): from abc import ABCMeta, abstractmethod class AbstractClassExample(metaclass=ABCMeta): @abstractmethod def foo(self): pass class ClassExample(AbstractClassExample): def foo(self): pass a = ClassExample() # Test general behaviour. self.assertTrue(inspect.isabstract(AbstractClassExample)) self.assertFalse(inspect.isabstract(ClassExample)) self.assertFalse(inspect.isabstract(a)) self.assertFalse(inspect.isabstract(int)) self.assertFalse(inspect.isabstract(5))
Example #3
Source File: test_abc.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_registration_basics(self): class A: __metaclass__ = abc.ABCMeta class B(object): pass b = B() self.assertFalse(issubclass(B, A)) self.assertFalse(issubclass(B, (A,))) self.assertNotIsInstance(b, A) self.assertNotIsInstance(b, (A,)) A.register(B) self.assertTrue(issubclass(B, A)) self.assertTrue(issubclass(B, (A,))) self.assertIsInstance(b, A) self.assertIsInstance(b, (A,)) class C(B): pass c = C() self.assertTrue(issubclass(C, A)) self.assertTrue(issubclass(C, (A,))) self.assertIsInstance(c, A) self.assertIsInstance(c, (A,))
Example #4
Source File: test_abc.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_registration_edge_cases(self): class A: __metaclass__ = abc.ABCMeta A.register(A) # should pass silently class A1(A): pass self.assertRaises(RuntimeError, A1.register, A) # cycles not allowed class B(object): pass A1.register(B) # ok A1.register(B) # should pass silently class C(A): pass A.register(C) # should pass silently self.assertRaises(RuntimeError, C.register, A) # cycles not allowed C.register(B) # ok
Example #5
Source File: test_abc.py From oss-ftp with MIT License | 6 votes |
def test_registration_edge_cases(self): class A: __metaclass__ = abc.ABCMeta A.register(A) # should pass silently class A1(A): pass self.assertRaises(RuntimeError, A1.register, A) # cycles not allowed class B(object): pass A1.register(B) # ok A1.register(B) # should pass silently class C(A): pass A.register(C) # should pass silently self.assertRaises(RuntimeError, C.register, A) # cycles not allowed C.register(B) # ok
Example #6
Source File: inspect.py From Imogen with MIT License | 6 votes |
def isabstract(object): """Return true if the object is an abstract base class (ABC).""" if not isinstance(object, type): return False if object.__flags__ & TPFLAGS_IS_ABSTRACT: return True if not issubclass(type(object), abc.ABCMeta): return False if hasattr(object, '__abstractmethods__'): # It looks like ABCMeta.__new__ has finished running; # TPFLAGS_IS_ABSTRACT should have been accurate. return False # It looks like ABCMeta.__new__ has not finished running yet; we're # probably in __init_subclass__. We'll look for abstractmethods manually. for name, value in object.__dict__.items(): if getattr(value, "__isabstractmethod__", False): return True for base in object.__bases__: for name in getattr(base, "__abstractmethods__", ()): value = getattr(object, name, None) if getattr(value, "__isabstractmethod__", False): return True return False
Example #7
Source File: deploy.py From picoCTF with MIT License | 6 votes |
def challenge_meta(attributes): """ Returns a metaclass that will introduce the given attributes into the class namespace. Args: attributes: The dictionary of attributes Returns: The metaclass described above """ class ChallengeMeta(ABCMeta): def __new__(cls, name, bases, attr): attrs = dict(attr) attrs.update(attributes) return super().__new__(cls, name, bases, attrs) return ChallengeMeta
Example #8
Source File: test_abc.py From oss-ftp with MIT License | 6 votes |
def test_cache_leak(self): # See issue #2521. class A(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod def f(self): pass class C(A): def f(self): A.f(self) r = weakref.ref(C) # Trigger cache. C().f() del C test_support.gc_collect() self.assertEqual(r(), None)
Example #9
Source File: config.py From blueoil with Apache License 2.0 | 6 votes |
def _save_config_yaml(output_dir, config): file_name = 'config.yaml' config_dict = _easy_dict_to_dict(config) file_path = os.path.join(output_dir, file_name) class Dumper(yaml.Dumper): def ignore_aliases(self, data): return True Dumper.add_representer(ABCMeta, Representer.represent_name) if type(config_dict['CLASSES']) != list: DatasetClass = config.DATASET_CLASS dataset_kwargs = dict((key.lower(), val) for key, val in config.DATASET.items()) train_dataset = DatasetClass( subset="train", **dataset_kwargs, ) config_dict['CLASSES'] = train_dataset.classes with gfile.GFile(os.path.join(output_dir, file_name), 'w') as outfile: yaml.dump(config_dict, outfile, default_flow_style=False, Dumper=Dumper) return file_path
Example #10
Source File: config.py From blueoil with Apache License 2.0 | 6 votes |
def _save_config_yaml(output_dir, config): file_name = 'config.yaml' config_dict = _easy_dict_to_dict(config) file_path = os.path.join(output_dir, file_name) class Dumper(yaml.Dumper): def ignore_aliases(self, data): return True Dumper.add_representer(ABCMeta, Representer.represent_name) if type(config_dict['CLASSES']) != list: DatasetClass = config.DATASET_CLASS dataset_kwargs = dict((key.lower(), val) for key, val in config.DATASET.items()) train_dataset = DatasetClass( subset="train", **dataset_kwargs, ) config_dict['CLASSES'] = train_dataset.classes with gfile.GFile(os.path.join(output_dir, file_name), 'w') as outfile: yaml.dump(config_dict, outfile, default_flow_style=False, Dumper=Dumper) return file_path
Example #11
Source File: test_descr.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_slots_descriptor(self): # Issue2115: slot descriptors did not correctly check # the type of the given object import abc class MyABC: __metaclass__ = abc.ABCMeta __slots__ = "a" class Unrelated(object): pass MyABC.register(Unrelated) u = Unrelated() self.assertIsInstance(u, MyABC) # This used to crash self.assertRaises(TypeError, MyABC.a.__set__, u, 3)
Example #12
Source File: test_abc.py From oss-ftp with MIT License | 6 votes |
def test_registration_basics(self): class A: __metaclass__ = abc.ABCMeta class B(object): pass b = B() self.assertFalse(issubclass(B, A)) self.assertFalse(issubclass(B, (A,))) self.assertNotIsInstance(b, A) self.assertNotIsInstance(b, (A,)) A.register(B) self.assertTrue(issubclass(B, A)) self.assertTrue(issubclass(B, (A,))) self.assertIsInstance(b, A) self.assertIsInstance(b, (A,)) class C(B): pass c = C() self.assertTrue(issubclass(C, A)) self.assertTrue(issubclass(C, (A,))) self.assertIsInstance(c, A) self.assertIsInstance(c, (A,))
Example #13
Source File: test_abc.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_cache_leak(self): # See issue #2521. class A(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod def f(self): pass class C(A): def f(self): A.f(self) r = weakref.ref(C) # Trigger cache. C().f() del C test_support.gc_collect() self.assertEqual(r(), None)
Example #14
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_register_as_class_deco(self): class A(metaclass=abc.ABCMeta): pass @A.register class B(object): pass b = B() self.assertTrue(issubclass(B, A)) self.assertTrue(issubclass(B, (A,))) self.assertIsInstance(b, A) self.assertIsInstance(b, (A,)) @A.register class C(B): pass c = C() self.assertTrue(issubclass(C, A)) self.assertTrue(issubclass(C, (A,))) self.assertIsInstance(c, A) self.assertIsInstance(c, (A,)) self.assertIs(C, A.register(C))
Example #15
Source File: test_descr.py From BinderFilter with MIT License | 6 votes |
def test_slots_descriptor(self): # Issue2115: slot descriptors did not correctly check # the type of the given object import abc class MyABC: __metaclass__ = abc.ABCMeta __slots__ = "a" class Unrelated(object): pass MyABC.register(Unrelated) u = Unrelated() self.assertIsInstance(u, MyABC) # This used to crash self.assertRaises(TypeError, MyABC.a.__set__, u, 3)
Example #16
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_registration_basics(self): class A(metaclass=abc.ABCMeta): pass class B(object): pass b = B() self.assertFalse(issubclass(B, A)) self.assertFalse(issubclass(B, (A,))) self.assertNotIsInstance(b, A) self.assertNotIsInstance(b, (A,)) B1 = A.register(B) self.assertTrue(issubclass(B, A)) self.assertTrue(issubclass(B, (A,))) self.assertIsInstance(b, A) self.assertIsInstance(b, (A,)) self.assertIs(B1, B) class C(B): pass c = C() self.assertTrue(issubclass(C, A)) self.assertTrue(issubclass(C, (A,))) self.assertIsInstance(c, A) self.assertIsInstance(c, (A,))
Example #17
Source File: test_descr.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_slots_descriptor(self): # Issue2115: slot descriptors did not correctly check # the type of the given object import abc class MyABC(metaclass=abc.ABCMeta): __slots__ = "a" class Unrelated(object): pass MyABC.register(Unrelated) u = Unrelated() self.assertIsInstance(u, MyABC) # This used to crash self.assertRaises(TypeError, MyABC.a.__set__, u, 3)
Example #18
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_abstractproperty_basics(self): @abc.abstractproperty def foo(self): pass self.assertTrue(foo.__isabstractmethod__) def bar(self): pass self.assertFalse(hasattr(bar, "__isabstractmethod__")) class C(metaclass=abc.ABCMeta): @abc.abstractproperty def foo(self): return 3 self.assertRaises(TypeError, C) class D(C): @property def foo(self): return super().foo self.assertEqual(D().foo, 3) self.assertFalse(getattr(D.foo, "__isabstractmethod__", False))
Example #19
Source File: test_abc.py From BinderFilter with MIT License | 6 votes |
def test_registration_basics(self): class A: __metaclass__ = abc.ABCMeta class B(object): pass b = B() self.assertFalse(issubclass(B, A)) self.assertFalse(issubclass(B, (A,))) self.assertNotIsInstance(b, A) self.assertNotIsInstance(b, (A,)) A.register(B) self.assertTrue(issubclass(B, A)) self.assertTrue(issubclass(B, (A,))) self.assertIsInstance(b, A) self.assertIsInstance(b, (A,)) class C(B): pass c = C() self.assertTrue(issubclass(C, A)) self.assertTrue(issubclass(C, (A,))) self.assertIsInstance(c, A) self.assertIsInstance(c, (A,))
Example #20
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_abstractclassmethod_basics(self): @abc.abstractclassmethod def foo(cls): pass self.assertTrue(foo.__isabstractmethod__) @classmethod def bar(cls): pass self.assertFalse(getattr(bar, "__isabstractmethod__", False)) class C(metaclass=abc.ABCMeta): @abc.abstractclassmethod def foo(cls): return cls.__name__ self.assertRaises(TypeError, C) class D(C): @classmethod def foo(cls): return super().foo() self.assertEqual(D.foo(), 'D') self.assertEqual(D().foo(), 'D')
Example #21
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_abstractstaticmethod_basics(self): @staticmethod @abc.abstractmethod def foo(): pass self.assertTrue(foo.__isabstractmethod__) @staticmethod def bar(): pass self.assertFalse(getattr(bar, "__isabstractmethod__", False)) class C(metaclass=abc.ABCMeta): @staticmethod @abc.abstractmethod def foo(): return 3 self.assertRaises(TypeError, C) class D(C): @staticmethod def foo(): return 4 self.assertEqual(D.foo(), 4) self.assertEqual(D().foo(), 4)
Example #22
Source File: test_abc.py From BinderFilter with MIT License | 6 votes |
def test_registration_edge_cases(self): class A: __metaclass__ = abc.ABCMeta A.register(A) # should pass silently class A1(A): pass self.assertRaises(RuntimeError, A1.register, A) # cycles not allowed class B(object): pass A1.register(B) # ok A1.register(B) # should pass silently class C(A): pass A.register(C) # should pass silently self.assertRaises(RuntimeError, C.register, A) # cycles not allowed C.register(B) # ok
Example #23
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_abstractclassmethod_basics(self): @classmethod @abc.abstractmethod def foo(cls): pass self.assertTrue(foo.__isabstractmethod__) @classmethod def bar(cls): pass self.assertFalse(getattr(bar, "__isabstractmethod__", False)) class C(metaclass=abc.ABCMeta): @classmethod @abc.abstractmethod def foo(cls): return cls.__name__ self.assertRaises(TypeError, C) class D(C): @classmethod def foo(cls): return super().foo() self.assertEqual(D.foo(), 'D') self.assertEqual(D().foo(), 'D')
Example #24
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_abstractproperty_basics(self): @property @abc.abstractmethod def foo(self): pass self.assertTrue(foo.__isabstractmethod__) def bar(self): pass self.assertFalse(getattr(bar, "__isabstractmethod__", False)) class C(metaclass=abc.ABCMeta): @property @abc.abstractmethod def foo(self): return 3 self.assertRaises(TypeError, C) class D(C): @C.foo.getter def foo(self): return super().foo self.assertEqual(D().foo, 3)
Example #25
Source File: test_abc.py From BinderFilter with MIT License | 6 votes |
def test_cache_leak(self): # See issue #2521. class A(object): __metaclass__ = abc.ABCMeta @abc.abstractmethod def f(self): pass class C(A): def f(self): A.f(self) r = weakref.ref(C) # Trigger cache. C().f() del C test_support.gc_collect() self.assertEqual(r(), None)
Example #26
Source File: meta.py From dimod with Apache License 2.0 | 6 votes |
def __new__(mcls, name, bases, namespace, **kwargs): cls = abc.ABCMeta.__new__(mcls, name, bases, namespace, **kwargs) samplermixins = {name for name, value in namespace.items() if getattr(value, "__issamplemixin__", False)} if len(samplermixins) == 3: abstracts = samplermixins else: abstracts = set() for base in bases: samplermixins = {name for name in getattr(base, "__abstractmethods__", set()) if getattr(getattr(cls, name, None), "__issamplemixin__", False)} if len(samplermixins) == 3: abstracts.update(samplermixins) # if we found any, update abstract methods if abstracts: cls.__abstractmethods__ = frozenset(abstracts.union(cls.__abstractmethods__)) return cls
Example #27
Source File: test_abc.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_registration_edge_cases(self): class A(metaclass=abc.ABCMeta): pass A.register(A) # should pass silently class A1(A): pass self.assertRaises(RuntimeError, A1.register, A) # cycles not allowed class B(object): pass A1.register(B) # ok A1.register(B) # should pass silently class C(A): pass A.register(C) # should pass silently self.assertRaises(RuntimeError, C.register, A) # cycles not allowed C.register(B) # ok
Example #28
Source File: test_util.py From gutenberg with Apache License 2.0 | 5 votes |
def test_abstractclassmethod(self): class ClassWithAbstractClassMethod( with_metaclass(abc.ABCMeta, object)): @abstractclassmethod def method(cls): pass class ConcreteImplementation(ClassWithAbstractClassMethod): @classmethod def method(cls): pass self.assertRaises(TypeError, ClassWithAbstractClassMethod) ConcreteImplementation()
Example #29
Source File: test_io.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_abcs(self): # Test the visible base classes are ABCs. self.assertIsInstance(self.IOBase, abc.ABCMeta) self.assertIsInstance(self.RawIOBase, abc.ABCMeta) self.assertIsInstance(self.BufferedIOBase, abc.ABCMeta) self.assertIsInstance(self.TextIOBase, abc.ABCMeta)
Example #30
Source File: test_functools.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_abstract(self): class Abstract(abc.ABCMeta): @abc.abstractmethod def add(self, x, y): pass add5 = functools.partialmethod(add, 5) self.assertTrue(Abstract.add.__isabstractmethod__) self.assertTrue(Abstract.add5.__isabstractmethod__) for func in [self.A.static, self.A.cls, self.A.over_partial, self.A.nested, self.A.both]: self.assertFalse(getattr(func, '__isabstractmethod__', False))