Coverage for /home/martinb/.local/share/virtualenvs/camcops/lib/python3.6/site-packages/pkg_resources/_vendor/packaging/_compat.py : 92%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
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
6import sys
9PY2 = sys.version_info[0] == 2
10PY3 = sys.version_info[0] == 3
12# flake8: noqa
14if PY3:
15 string_types = str,
16else:
17 string_types = basestring,
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 return type.__new__(metaclass, 'temporary_class', (), {})