Path: blob/master/ invest-robot-contest_TinkoffBotTwitch-main/venv/lib/python3.8/site-packages/setuptools/py33compat.py
7763 views
import dis1import array2import collections34try:5import html6except ImportError:7html = None89from setuptools.extern import six10from setuptools.extern.six.moves import html_parser1112__metaclass__ = type1314OpArg = collections.namedtuple('OpArg', 'opcode arg')151617class Bytecode_compat:18def __init__(self, code):19self.code = code2021def __iter__(self):22"""Yield '(op,arg)' pair for each operation in code object 'code'"""2324bytes = array.array('b', self.code.co_code)25eof = len(self.code.co_code)2627ptr = 028extended_arg = 02930while ptr < eof:3132op = bytes[ptr]3334if op >= dis.HAVE_ARGUMENT:3536arg = bytes[ptr + 1] + bytes[ptr + 2] * 256 + extended_arg37ptr += 33839if op == dis.EXTENDED_ARG:40long_type = six.integer_types[-1]41extended_arg = arg * long_type(65536)42continue4344else:45arg = None46ptr += 14748yield OpArg(op, arg)495051Bytecode = getattr(dis, 'Bytecode', Bytecode_compat)525354unescape = getattr(html, 'unescape', None)55if unescape is None:56# HTMLParser.unescape is deprecated since Python 3.4, and will be removed57# from 3.9.58unescape = html_parser.HTMLParser().unescape596061