Mercurial > repos > shellac > guppy_basecaller
comparison env/lib/python3.7/site-packages/setuptools/py33compat.py @ 0:26e78fe6e8c4 draft
"planemo upload commit c699937486c35866861690329de38ec1a5d9f783"
author | shellac |
---|---|
date | Sat, 02 May 2020 07:14:21 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:26e78fe6e8c4 |
---|---|
1 import dis | |
2 import array | |
3 import collections | |
4 | |
5 try: | |
6 import html | |
7 except ImportError: | |
8 html = None | |
9 | |
10 from setuptools.extern import six | |
11 from setuptools.extern.six.moves import html_parser | |
12 | |
13 __metaclass__ = type | |
14 | |
15 OpArg = collections.namedtuple('OpArg', 'opcode arg') | |
16 | |
17 | |
18 class Bytecode_compat: | |
19 def __init__(self, code): | |
20 self.code = code | |
21 | |
22 def __iter__(self): | |
23 """Yield '(op,arg)' pair for each operation in code object 'code'""" | |
24 | |
25 bytes = array.array('b', self.code.co_code) | |
26 eof = len(self.code.co_code) | |
27 | |
28 ptr = 0 | |
29 extended_arg = 0 | |
30 | |
31 while ptr < eof: | |
32 | |
33 op = bytes[ptr] | |
34 | |
35 if op >= dis.HAVE_ARGUMENT: | |
36 | |
37 arg = bytes[ptr + 1] + bytes[ptr + 2] * 256 + extended_arg | |
38 ptr += 3 | |
39 | |
40 if op == dis.EXTENDED_ARG: | |
41 long_type = six.integer_types[-1] | |
42 extended_arg = arg * long_type(65536) | |
43 continue | |
44 | |
45 else: | |
46 arg = None | |
47 ptr += 1 | |
48 | |
49 yield OpArg(op, arg) | |
50 | |
51 | |
52 Bytecode = getattr(dis, 'Bytecode', Bytecode_compat) | |
53 | |
54 | |
55 unescape = getattr(html, 'unescape', None) | |
56 if unescape is None: | |
57 # HTMLParser.unescape is deprecated since Python 3.4, and will be removed | |
58 # from 3.9. | |
59 unescape = html_parser.HTMLParser().unescape |