aboutsummaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/fixedint/compat.py
blob: 4dcc240c9c72ed56da0285004afb93cb53787033 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: utf-8 -*-
import sys

PY3K = sys.version_info[0] >= 3

# add_metaclass from six.py, (c) 2010-2014 Benjamin Peterson
def add_metaclass(metaclass):
    """Class decorator for creating a class with a metaclass."""
    def wrapper(cls):
        orig_vars = cls.__dict__.copy()
        orig_vars.pop('__dict__', None)
        orig_vars.pop('__weakref__', None)
        slots = orig_vars.get('__slots__')
        if slots is not None:
            if isinstance(slots, str):
                slots = [slots]
            for slots_var in slots:
                orig_vars.pop(slots_var)
        return metaclass(cls.__name__, cls.__bases__, orig_vars)
    return wrapper