Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.8/site-packages/setuptools/_vendor/packaging/_compat.py: 92%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

12 statements  

1# This file is dual licensed under the terms of the Apache License, Version 

2# 2.0, and the BSD License. See the LICENSE file in the root of this repository 

3# for complete details. 

4from __future__ import absolute_import, division, print_function 

5 

6import sys 

7 

8 

9PY2 = sys.version_info[0] == 2 

10PY3 = sys.version_info[0] == 3 

11 

12# flake8: noqa 

13 

14if PY3: 

15 string_types = (str,) 

16else: 

17 string_types = (basestring,) 

18 

19 

20def with_metaclass(meta, *bases): 

21 """ 

22 Create a base class with a metaclass. 

23 """ 

24 # This requires a bit of explanation: the basic idea is to make a dummy 

25 # metaclass for one level of class instantiation that replaces itself with 

26 # the actual metaclass. 

27 class metaclass(meta): 

28 def __new__(cls, name, this_bases, d): 

29 return meta(name, bases, d) 

30 

31 return type.__new__(metaclass, "temporary_class", (), {})