prasb commited on
Commit
454ced8
·
verified ·
1 Parent(s): d85f99d

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +5 -0
  2. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Makefile +1953 -0
  3. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup +368 -0
  4. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup.local +1 -0
  5. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c +114 -0
  6. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c.in +67 -0
  7. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/install-sh +518 -0
  8. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/makesetup +309 -0
  9. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/python-config.py +74 -0
  10. my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/python.o +0 -0
  11. my_container_sandbox/workspace/anaconda3/lib/python3.8/curses/textpad.py +201 -0
  12. my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_latin2.py +312 -0
  13. my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/__init__.py +216 -0
  14. my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/__main__.py +5 -0
  15. my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/_uninstall.py +31 -0
  16. my_container_sandbox/workspace/anaconda3/lib/python3.8/html/__init__.py +132 -0
  17. my_container_sandbox/workspace/anaconda3/lib/python3.8/html/entities.py +2509 -0
  18. my_container_sandbox/workspace/anaconda3/lib/python3.8/html/parser.py +470 -0
  19. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_bisect.cpython-38-x86_64-linux-gnu.so +0 -0
  20. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_codecs_iso2022.cpython-38-x86_64-linux-gnu.so +0 -0
  21. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_contextvars.cpython-38-x86_64-linux-gnu.so +0 -0
  22. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_crypt.cpython-38-x86_64-linux-gnu.so +0 -0
  23. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_ctypes_test.cpython-38-x86_64-linux-gnu.so +0 -0
  24. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_curses_panel.cpython-38-x86_64-linux-gnu.so +0 -0
  25. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_lsprof.cpython-38-x86_64-linux-gnu.so +0 -0
  26. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_md5.cpython-38-x86_64-linux-gnu.so +0 -0
  27. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_multiprocessing.cpython-38-x86_64-linux-gnu.so +0 -0
  28. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so +0 -0
  29. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_posixshmem.cpython-38-x86_64-linux-gnu.so +0 -0
  30. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_posixsubprocess.cpython-38-x86_64-linux-gnu.so +0 -0
  31. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_queue.cpython-38-x86_64-linux-gnu.so +0 -0
  32. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_random.cpython-38-x86_64-linux-gnu.so +0 -0
  33. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha1.cpython-38-x86_64-linux-gnu.so +0 -0
  34. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha256.cpython-38-x86_64-linux-gnu.so +0 -0
  35. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha512.cpython-38-x86_64-linux-gnu.so +0 -0
  36. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_statistics.cpython-38-x86_64-linux-gnu.so +0 -0
  37. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testimportmultiple.cpython-38-x86_64-linux-gnu.so +0 -0
  38. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testinternalcapi.cpython-38-x86_64-linux-gnu.so +0 -0
  39. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testmultiphase.cpython-38-x86_64-linux-gnu.so +0 -0
  40. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_xxtestfuzz.cpython-38-x86_64-linux-gnu.so +0 -0
  41. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/fcntl.cpython-38-x86_64-linux-gnu.so +0 -0
  42. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/grp.cpython-38-x86_64-linux-gnu.so +0 -0
  43. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/nis.cpython-38-x86_64-linux-gnu.so +0 -0
  44. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/ossaudiodev.cpython-38-x86_64-linux-gnu.so +0 -0
  45. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/parser.cpython-38-x86_64-linux-gnu.so +0 -0
  46. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/resource.cpython-38-x86_64-linux-gnu.so +0 -0
  47. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/spwd.cpython-38-x86_64-linux-gnu.so +0 -0
  48. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/syslog.cpython-38-x86_64-linux-gnu.so +0 -0
  49. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/termios.cpython-38-x86_64-linux-gnu.so +0 -0
  50. my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/xxlimited.cpython-38-x86_64-linux-gnu.so +0 -0
.gitattributes CHANGED
@@ -165,3 +165,8 @@ my_container_sandbox/workspace/anaconda3/lib/libreadline.a filter=lfs diff=lfs m
165
  my_container_sandbox/workspace/anaconda3/pkgs/urllib3-1.26.6-pyhd3eb1b0_1.conda filter=lfs diff=lfs merge=lfs -text
166
  my_container_sandbox/workspace/anaconda3/pkgs/zlib-1.2.11-h7b6447c_3.conda filter=lfs diff=lfs merge=lfs -text
167
  my_container_sandbox/workspace/anaconda3/pkgs/cffi-1.16.0-py38h5eee18b_0.conda filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
165
  my_container_sandbox/workspace/anaconda3/pkgs/urllib3-1.26.6-pyhd3eb1b0_1.conda filter=lfs diff=lfs merge=lfs -text
166
  my_container_sandbox/workspace/anaconda3/pkgs/zlib-1.2.11-h7b6447c_3.conda filter=lfs diff=lfs merge=lfs -text
167
  my_container_sandbox/workspace/anaconda3/pkgs/cffi-1.16.0-py38h5eee18b_0.conda filter=lfs diff=lfs merge=lfs -text
168
+ my_container_sandbox/workspace/anaconda3/pkgs/ruamel_yaml-0.15.100-py39h27cfd23_0.conda filter=lfs diff=lfs merge=lfs -text
169
+ my_container_sandbox/workspace/anaconda3/pkgs/libgomp-11.2.0-h1234567_1.conda filter=lfs diff=lfs merge=lfs -text
170
+ my_container_sandbox/workspace/anaconda3/pkgs/tzdata-2021a-h52ac0ba_0.conda filter=lfs diff=lfs merge=lfs -text
171
+ my_container_sandbox/workspace/anaconda3/pkgs/ca-certificates-2024.2.2-hbcca054_0.conda filter=lfs diff=lfs merge=lfs -text
172
+ my_container_sandbox/workspace/anaconda3/pkgs/ncurses-6.4-h6a678d5_0.conda filter=lfs diff=lfs merge=lfs -text
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Makefile ADDED
@@ -0,0 +1,1953 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Generated automatically from Makefile.pre by makesetup.
2
+ # Top-level Makefile for Python
3
+ #
4
+ # As distributed, this file is called Makefile.pre.in; it is processed
5
+ # into the real Makefile by running the script ./configure, which
6
+ # replaces things like @spam@ with values appropriate for your system.
7
+ # This means that if you edit Makefile, your changes get lost the next
8
+ # time you run the configure script. Ideally, you can do:
9
+ #
10
+ # ./configure
11
+ # make
12
+ # make test
13
+ # make install
14
+ #
15
+ # If you have a previous version of Python installed that you don't
16
+ # want to overwrite, you can use "make altinstall" instead of "make
17
+ # install". Refer to the "Installing" section in the README file for
18
+ # additional details.
19
+ #
20
+ # See also the section "Build instructions" in the README file.
21
+
22
+ # === Variables set by makesetup ===
23
+
24
+ MODBUILT_NAMES= posix errno pwd _sre _codecs _weakref _functools _operator _collections _abc itertools atexit _signal _stat time _thread _locale _io faulthandler _tracemalloc _symtable xxsubtype
25
+ MODDISABLED_NAMES=
26
+ MODOBJS= Modules/posixmodule.o Modules/errnomodule.o Modules/pwdmodule.o Modules/_sre.o Modules/_codecsmodule.o Modules/_weakref.o Modules/_functoolsmodule.o Modules/_operator.o Modules/_collectionsmodule.o Modules/_abc.o Modules/itertoolsmodule.o Modules/atexitmodule.o Modules/signalmodule.o Modules/_stat.o Modules/timemodule.o Modules/_threadmodule.o Modules/_localemodule.o Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o Modules/faulthandler.o Modules/_tracemalloc.o Modules/hashtable.o Modules/symtablemodule.o Modules/xxsubtype.o
27
+ MODLIBS= $(LOCALMODLIBS) $(BASEMODLIBS)
28
+
29
+ # === Variables set by configure
30
+ VERSION= 3.8
31
+ srcdir= /croot/python-split_1694437953337/work
32
+ VPATH= /croot/python-split_1694437953337/work
33
+ abs_srcdir= /croot/python-split_1694437953337/work
34
+ abs_builddir= /croot/python-split_1694437953337/work/build-static
35
+
36
+
37
+ CC= x86_64-conda-linux-gnu-gcc -pthread
38
+ CXX= x86_64-conda-linux-gnu-c++ -pthread
39
+ MAINCC= $(CC)
40
+ LINKCC= $(PURIFY) $(MAINCC)
41
+ AR= x86_64-conda-linux-gnu-ar
42
+ READELF= x86_64-conda-linux-gnu-readelf
43
+ SOABI= cpython-38-x86_64-linux-gnu
44
+ LDVERSION= $(VERSION)$(ABIFLAGS)
45
+ LIBPYTHON=
46
+ GITVERSION=
47
+ GITTAG=
48
+ GITBRANCH=
49
+ PGO_PROF_GEN_FLAG=-fprofile-generate
50
+ PGO_PROF_USE_FLAG=
51
+ LLVM_PROF_MERGER=true
52
+ LLVM_PROF_FILE=
53
+ LLVM_PROF_ERR=no
54
+ DTRACE=
55
+ DFLAGS=
56
+ DTRACE_HEADERS=
57
+ DTRACE_OBJS=
58
+
59
+ GNULD= yes
60
+
61
+ # Shell used by make (some versions default to the login shell, which is bad)
62
+ SHELL= /bin/sh
63
+
64
+ # Use this to make a link between python$(VERSION) and python in $(BINDIR)
65
+ LN= ln
66
+
67
+ # Portable install script (configure doesn't always guess right)
68
+ INSTALL= /usr/bin/install -c
69
+ INSTALL_PROGRAM=${INSTALL}
70
+ INSTALL_SCRIPT= ${INSTALL}
71
+ INSTALL_DATA= ${INSTALL} -m 644
72
+ # Shared libraries must be installed with executable mode on some systems;
73
+ # rather than figuring out exactly which, we always give them executable mode.
74
+ INSTALL_SHARED= ${INSTALL} -m 755
75
+
76
+ MKDIR_P= /usr/bin/mkdir -p
77
+
78
+ MAKESETUP= $(srcdir)/Modules/makesetup
79
+
80
+ # Compiler options
81
+ OPT= -DNDEBUG -fwrapv -O2 -Wall
82
+ BASECFLAGS= -Wno-unused-result -Wsign-compare
83
+ BASECPPFLAGS= -IObjects -IInclude -IPython
84
+ CONFIGURE_CFLAGS= -march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /workspace/anaconda3/include -fdebug-prefix-map=/croot/python-split_1694437953337/work=/usr/local/src/conda/python-3.8.18 -fdebug-prefix-map=/workspace/anaconda3=/usr/local/src/conda-prefix
85
+ # CFLAGS_NODIST is used for building the interpreter and stdlib C extensions.
86
+ # Use it when a compiler flag should _not_ be part of the distutils CFLAGS
87
+ # once Python is installed (Issue #21121).
88
+ CONFIGURE_CFLAGS_NODIST= -g -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration
89
+ # LDFLAGS_NODIST is used in the same manner as CFLAGS_NODIST.
90
+ # Use it when a linker flag should _not_ be part of the distutils LDFLAGS
91
+ # once Python is installed (bpo-35257)
92
+ CONFIGURE_LDFLAGS_NODIST= -g
93
+ CONFIGURE_CPPFLAGS= -DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /workspace/anaconda3/include -I/workspace/anaconda3/include
94
+ CONFIGURE_LDFLAGS= -Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/workspace/anaconda3/lib -Wl,-rpath-link,/workspace/anaconda3/lib -L/workspace/anaconda3/lib
95
+ # Avoid assigning CFLAGS, LDFLAGS, etc. so users can use them on the
96
+ # command line to append to these values without stomping the pre-set
97
+ # values.
98
+ PY_CFLAGS= $(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS)
99
+ PY_CFLAGS_NODIST=$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/internal
100
+ # Both CPPFLAGS and LDFLAGS need to contain the shell's value for setup.py to
101
+ # be able to build extension modules using the directories specified in the
102
+ # environment variables
103
+ PY_CPPFLAGS= $(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) $(CPPFLAGS)
104
+ PY_LDFLAGS= $(CONFIGURE_LDFLAGS) $(LDFLAGS)
105
+ PY_LDFLAGS_NODIST=$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)
106
+ NO_AS_NEEDED= -Wl,--no-as-needed
107
+ SGI_ABI= @SGI_ABI@
108
+ CCSHARED= -fPIC
109
+ # LINKFORSHARED are the flags passed to the $(CC) command that links
110
+ # the python executable -- this is only needed for a few systems
111
+ LINKFORSHARED= -Xlinker -export-dynamic
112
+ ARFLAGS= rcs
113
+ # Extra C flags added for building the interpreter object files.
114
+ CFLAGSFORSHARED=
115
+ # C flags used for building the interpreter object files
116
+ PY_STDMODULE_CFLAGS= $(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) $(CFLAGSFORSHARED)
117
+ PY_BUILTIN_MODULE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN
118
+ PY_CORE_CFLAGS= $(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE
119
+ # Linker flags used for building the interpreter object files
120
+ PY_CORE_LDFLAGS=$(PY_LDFLAGS) $(PY_LDFLAGS_NODIST)
121
+ # Strict or non-strict aliasing flags used to compile dtoa.c, see above
122
+ CFLAGS_ALIASING=
123
+
124
+
125
+ # Machine-dependent subdirectories
126
+ MACHDEP= linux
127
+
128
+ # Multiarch directory (may be empty)
129
+ MULTIARCH= x86_64-linux-gnu
130
+ MULTIARCH_CPPFLAGS = -DMULTIARCH=\"x86_64-linux-gnu\"
131
+
132
+ # Install prefix for architecture-independent files
133
+ prefix= /workspace/anaconda3
134
+
135
+ # Install prefix for architecture-dependent files
136
+ exec_prefix= ${prefix}
137
+
138
+ # Install prefix for data files
139
+ datarootdir= ${prefix}/share
140
+
141
+ # Expanded directories
142
+ BINDIR= ${exec_prefix}/bin
143
+ LIBDIR= ${exec_prefix}/lib
144
+ MANDIR= ${datarootdir}/man
145
+ INCLUDEDIR= ${prefix}/include
146
+ CONFINCLUDEDIR= $(exec_prefix)/include
147
+ SCRIPTDIR= $(prefix)/lib
148
+ ABIFLAGS=
149
+
150
+ # Detailed destination directories
151
+ BINLIBDEST= $(LIBDIR)/python$(VERSION)
152
+ LIBDEST= $(SCRIPTDIR)/python$(VERSION)
153
+ INCLUDEPY= $(INCLUDEDIR)/python$(LDVERSION)
154
+ CONFINCLUDEPY= $(CONFINCLUDEDIR)/python$(LDVERSION)
155
+
156
+ # Symbols used for using shared libraries
157
+ SHLIB_SUFFIX= .so
158
+ EXT_SUFFIX= .cpython-38-x86_64-linux-gnu.so
159
+ LDSHARED= $(CC) -shared $(PY_LDFLAGS)
160
+ BLDSHARED= $(CC) -shared $(PY_CORE_LDFLAGS)
161
+ LDCXXSHARED= $(CXX) -shared
162
+ DESTSHARED= $(BINLIBDEST)/lib-dynload
163
+
164
+ # Executable suffix (.exe on Windows and Mac OS X)
165
+ EXE=
166
+ BUILDEXE=
167
+
168
+ # Short name and location for Mac OS X Python framework
169
+ UNIVERSALSDK=
170
+ PYTHONFRAMEWORK=
171
+ PYTHONFRAMEWORKDIR= no-framework
172
+ PYTHONFRAMEWORKPREFIX=
173
+ PYTHONFRAMEWORKINSTALLDIR=
174
+ # Deployment target selected during configure, to be checked
175
+ # by distutils. The export statement is needed to ensure that the
176
+ # deployment target is active during build.
177
+ MACOSX_DEPLOYMENT_TARGET=
178
+ #export MACOSX_DEPLOYMENT_TARGET
179
+
180
+ # Option to install to strip binaries
181
+ STRIPFLAG=-s
182
+
183
+ # Flags to lipo to produce a 32-bit-only universal executable
184
+ LIPO_32BIT_FLAGS=
185
+
186
+ # Flags to lipo to produce an intel-64-only universal executable
187
+ LIPO_INTEL64_FLAGS=
188
+
189
+ # Options to enable prebinding (for fast startup prior to Mac OS X 10.3)
190
+ OTHER_LIBTOOL_OPT=
191
+
192
+ # Environment to run shared python without installed libraries
193
+ RUNSHARED=
194
+
195
+ # ensurepip options
196
+ ENSUREPIP= no
197
+
198
+ # OpenSSL options for setup.py so sysconfig can pick up AC_SUBST() vars.
199
+ OPENSSL_INCLUDES=-I/workspace/anaconda3/include
200
+ OPENSSL_LIBS=-lssl -lcrypto
201
+ OPENSSL_LDFLAGS=-L/workspace/anaconda3/lib
202
+
203
+ # Modes for directories, executables and data files created by the
204
+ # install process. Default to user-only-writable for all file types.
205
+ DIRMODE= 755
206
+ EXEMODE= 755
207
+ FILEMODE= 644
208
+
209
+ # configure script arguments
210
+ CONFIG_ARGS= '--prefix=/workspace/anaconda3' '--build=x86_64-conda-linux-gnu' '--host=x86_64-conda-linux-gnu' '--enable-ipv6' '--with-ensurepip=no' '--with-computed-gotos' '--with-system-ffi' '--enable-loadable-sqlite-extensions' '--with-openssl=/workspace/anaconda3' '--with-tcltk-includes=-I/workspace/anaconda3/include' '--with-tcltk-libs=-L/workspace/anaconda3/lib -ltcl8.6 -ltk8.6' '--with-lto' '--enable-optimizations' '-oldincludedir=/croot/python-split_1694437953337/_build_env/x86_64-conda-linux-gnu/sysroot/usr/include' '--disable-shared' 'PROFILE_TASK=-m test --pgo' 'build_alias=x86_64-conda-linux-gnu' 'host_alias=x86_64-conda-linux-gnu' 'MACHDEP=linux' 'CC=x86_64-conda-linux-gnu-gcc' 'CFLAGS=-march=nocona -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 -ffunction-sections -pipe -isystem /workspace/anaconda3/include -fdebug-prefix-map=/croot/python-split_1694437953337/work=/usr/local/src/conda/python-3.8.18 -fdebug-prefix-map=/workspace/anaconda3=/usr/local/src/conda-prefix ' 'LDFLAGS=-Wl,-O2 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -Wl,--disable-new-dtags -Wl,--gc-sections -Wl,-rpath,/workspace/anaconda3/lib -Wl,-rpath-link,/workspace/anaconda3/lib -L/workspace/anaconda3/lib' 'CPPFLAGS=-DNDEBUG -D_FORTIFY_SOURCE=2 -O2 -isystem /workspace/anaconda3/include -I/workspace/anaconda3/include' 'CPP=/croot/python-split_1694437953337/_build_env/bin/x86_64-conda-linux-gnu-cpp' 'PKG_CONFIG_PATH=/workspace/anaconda3/lib/pkgconfig'
211
+
212
+
213
+ # Subdirectories with code
214
+ SRCDIRS= Parser Objects Python Modules Modules/_io Programs
215
+
216
+ # Other subdirectories
217
+ SUBDIRSTOO= Include Lib Misc
218
+
219
+ # Files and directories to be distributed
220
+ CONFIGFILES= configure configure.ac acconfig.h pyconfig.h.in Makefile.pre.in
221
+ DISTFILES= README.rst ChangeLog $(CONFIGFILES)
222
+ DISTDIRS= $(SUBDIRS) $(SUBDIRSTOO) Ext-dummy
223
+ DIST= $(DISTFILES) $(DISTDIRS)
224
+
225
+
226
+ LIBRARY= libpython$(VERSION)$(ABIFLAGS).a
227
+ LDLIBRARY= libpython$(VERSION)$(ABIFLAGS).a
228
+ BLDLIBRARY= $(LDLIBRARY)
229
+ PY3LIBRARY=
230
+ DLLLIBRARY=
231
+ LDLIBRARYDIR=
232
+ INSTSONAME= $(LDLIBRARY)
233
+
234
+
235
+ LIBS= -lcrypt -lpthread -ldl -lutil -lm
236
+ LIBM= -lm
237
+ LIBC=
238
+ SYSLIBS= $(LIBM) $(LIBC)
239
+ SHLIBS= $(LIBS)
240
+
241
+ DLINCLDIR= .
242
+ DYNLOADFILE= dynload_shlib.o
243
+ MACHDEP_OBJS=
244
+ LIBOBJDIR= Python/
245
+ LIBOBJS=
246
+
247
+ PYTHON= python$(EXE)
248
+ BUILDPYTHON= python$(BUILDEXE)
249
+
250
+ PYTHON_FOR_REGEN=python3
251
+ UPDATE_FILE=python3 $(srcdir)/Tools/scripts/update_file.py
252
+ PY_BUILD_ENVIRON=
253
+ PYTHON_FOR_BUILD=./$(BUILDPYTHON) -E
254
+ _PYTHON_HOST_PLATFORM=linux-x86_64
255
+ BUILD_GNU_TYPE= x86_64-conda-linux-gnu
256
+ HOST_GNU_TYPE= x86_64-conda-linux-gnu
257
+
258
+ # Tcl and Tk config info from --with-tcltk-includes and -libs options
259
+ TCLTK_INCLUDES= -I/workspace/anaconda3/include
260
+ TCLTK_LIBS= -L/workspace/anaconda3/lib -ltcl8.6 -ltk8.6
261
+
262
+ # The task to run while instrumented when building the profile-opt target.
263
+ # To speed up profile generation, we don't run the full unit test suite
264
+ # by default. The default is "-m test --pgo". To run more tests, use
265
+ # PROFILE_TASK="-m test --pgo-extended"
266
+ PROFILE_TASK= -m test --pgo
267
+
268
+ # report files for gcov / lcov coverage report
269
+ COVERAGE_INFO= $(abs_builddir)/coverage.info
270
+ COVERAGE_REPORT=$(abs_builddir)/lcov-report
271
+ COVERAGE_REPORT_OPTIONS=--no-branch-coverage --title "CPython lcov report"
272
+
273
+
274
+ # === Definitions added by makesetup ===
275
+
276
+ LOCALMODLIBS=
277
+ BASEMODLIBS=
278
+ PYTHONPATH=$(COREPYTHONPATH)
279
+ COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)
280
+ TESTPATH=
281
+ SITEPATH=
282
+ DESTPATH=
283
+ MACHDESTLIB=$(BINLIBDEST)
284
+ DESTLIB=$(LIBDEST)
285
+
286
+
287
+
288
+ ##########################################################################
289
+ # Modules
290
+ MODULE_OBJS= \
291
+ Modules/config.o \
292
+ Modules/getpath.o \
293
+ Modules/main.o \
294
+ Modules/gcmodule.o
295
+
296
+ IO_H= Modules/_io/_iomodule.h
297
+
298
+ IO_OBJS= \
299
+ Modules/_io/_iomodule.o \
300
+ Modules/_io/iobase.o \
301
+ Modules/_io/fileio.o \
302
+ Modules/_io/bufferedio.o \
303
+ Modules/_io/textio.o \
304
+ Modules/_io/bytesio.o \
305
+ Modules/_io/stringio.o
306
+
307
+ ##########################################################################
308
+
309
+ LIBFFI_INCLUDEDIR= /workspace/anaconda3/include
310
+
311
+ ##########################################################################
312
+ # Parser
313
+ POBJS= \
314
+ Parser/acceler.o \
315
+ Parser/grammar1.o \
316
+ Parser/listnode.o \
317
+ Parser/node.o \
318
+ Parser/parser.o \
319
+ Parser/token.o \
320
+
321
+ PARSER_OBJS= $(POBJS) Parser/myreadline.o Parser/parsetok.o Parser/tokenizer.o
322
+
323
+ PARSER_HEADERS= \
324
+ $(srcdir)/Include/grammar.h \
325
+ $(srcdir)/Include/parsetok.h \
326
+ $(srcdir)/Parser/parser.h \
327
+ $(srcdir)/Parser/tokenizer.h
328
+
329
+ ##########################################################################
330
+ # Python
331
+
332
+ PYTHON_OBJS= \
333
+ Python/_warnings.o \
334
+ Python/Python-ast.o \
335
+ Python/asdl.o \
336
+ Python/ast.o \
337
+ Python/ast_opt.o \
338
+ Python/ast_unparse.o \
339
+ Python/bltinmodule.o \
340
+ Python/ceval.o \
341
+ Python/codecs.o \
342
+ Python/compile.o \
343
+ Python/context.o \
344
+ Python/dynamic_annotations.o \
345
+ Python/errors.o \
346
+ Python/frozenmain.o \
347
+ Python/future.o \
348
+ Python/getargs.o \
349
+ Python/getcompiler.o \
350
+ Python/getcopyright.o \
351
+ Python/getplatform.o \
352
+ Python/getversion.o \
353
+ Python/graminit.o \
354
+ Python/hamt.o \
355
+ Python/import.o \
356
+ Python/importdl.o \
357
+ Python/initconfig.o \
358
+ Python/marshal.o \
359
+ Python/modsupport.o \
360
+ Python/mysnprintf.o \
361
+ Python/mystrtoul.o \
362
+ Python/pathconfig.o \
363
+ Python/peephole.o \
364
+ Python/preconfig.o \
365
+ Python/pyarena.o \
366
+ Python/pyctype.o \
367
+ Python/pyfpe.o \
368
+ Python/pyhash.o \
369
+ Python/pylifecycle.o \
370
+ Python/pymath.o \
371
+ Python/pystate.o \
372
+ Python/pythonrun.o \
373
+ Python/pytime.o \
374
+ Python/bootstrap_hash.o \
375
+ Python/structmember.o \
376
+ Python/symtable.o \
377
+ Python/sysmodule.o \
378
+ Python/thread.o \
379
+ Python/traceback.o \
380
+ Python/getopt.o \
381
+ Python/pystrcmp.o \
382
+ Python/pystrtod.o \
383
+ Python/pystrhex.o \
384
+ Python/dtoa.o \
385
+ Python/formatter_unicode.o \
386
+ Python/fileutils.o \
387
+ Python/$(DYNLOADFILE) \
388
+ $(LIBOBJS) \
389
+ $(MACHDEP_OBJS) \
390
+ $(DTRACE_OBJS)
391
+
392
+
393
+ ##########################################################################
394
+ # Objects
395
+ OBJECT_OBJS= \
396
+ Objects/abstract.o \
397
+ Objects/accu.o \
398
+ Objects/boolobject.o \
399
+ Objects/bytes_methods.o \
400
+ Objects/bytearrayobject.o \
401
+ Objects/bytesobject.o \
402
+ Objects/call.o \
403
+ Objects/capsule.o \
404
+ Objects/cellobject.o \
405
+ Objects/classobject.o \
406
+ Objects/codeobject.o \
407
+ Objects/complexobject.o \
408
+ Objects/descrobject.o \
409
+ Objects/enumobject.o \
410
+ Objects/exceptions.o \
411
+ Objects/genobject.o \
412
+ Objects/fileobject.o \
413
+ Objects/floatobject.o \
414
+ Objects/frameobject.o \
415
+ Objects/funcobject.o \
416
+ Objects/interpreteridobject.o \
417
+ Objects/iterobject.o \
418
+ Objects/listobject.o \
419
+ Objects/longobject.o \
420
+ Objects/dictobject.o \
421
+ Objects/odictobject.o \
422
+ Objects/memoryobject.o \
423
+ Objects/methodobject.o \
424
+ Objects/moduleobject.o \
425
+ Objects/namespaceobject.o \
426
+ Objects/object.o \
427
+ Objects/obmalloc.o \
428
+ Objects/picklebufobject.o \
429
+ Objects/rangeobject.o \
430
+ Objects/setobject.o \
431
+ Objects/sliceobject.o \
432
+ Objects/structseq.o \
433
+ Objects/tupleobject.o \
434
+ Objects/typeobject.o \
435
+ Objects/unicodeobject.o \
436
+ Objects/unicodectype.o \
437
+ Objects/weakrefobject.o
438
+
439
+ ##########################################################################
440
+ # objects that get linked into the Python library
441
+ LIBRARY_OBJS_OMIT_FROZEN= \
442
+ Modules/getbuildinfo.o \
443
+ $(PARSER_OBJS) \
444
+ $(OBJECT_OBJS) \
445
+ $(PYTHON_OBJS) \
446
+ $(MODULE_OBJS) \
447
+ $(MODOBJS)
448
+
449
+ LIBRARY_OBJS= \
450
+ $(LIBRARY_OBJS_OMIT_FROZEN) \
451
+ Python/frozen.o
452
+
453
+ ##########################################################################
454
+ # DTrace
455
+
456
+ # On some systems, object files that reference DTrace probes need to be modified
457
+ # in-place by dtrace(1).
458
+ DTRACE_DEPS = \
459
+ Python/ceval.o Python/import.o Python/sysmodule.o Modules/gcmodule.o
460
+
461
+ #########################################################################
462
+ # Rules
463
+
464
+ # Default target
465
+ all: profile-opt
466
+ build_all: check-clean-src $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks \
467
+ Programs/_testembed python-config
468
+
469
+ # Check that the source is clean when building out of source.
470
+ check-clean-src:
471
+ @if test -n "$(VPATH)" -a -f "$(srcdir)/Programs/python.o"; then \
472
+ echo "Error: The source directory ($(srcdir)) is not clean" ; \
473
+ echo "Building Python out of the source tree (in $(abs_builddir)) requires a clean source tree ($(abs_srcdir))" ; \
474
+ echo "Try to run: make -C \"$(srcdir)\" clean" ; \
475
+ exit 1; \
476
+ fi
477
+
478
+ # Profile generation build must start from a clean tree.
479
+ profile-clean-stamp:
480
+ $(MAKE) clean profile-removal
481
+ touch $@
482
+
483
+ # Compile with profile generation enabled.
484
+ profile-gen-stamp: profile-clean-stamp
485
+ @if [ $(LLVM_PROF_ERR) = yes ]; then \
486
+ echo "Error: Cannot perform PGO build because llvm-profdata was not found in PATH" ;\
487
+ echo "Please add it to PATH and run ./configure again" ;\
488
+ exit 1;\
489
+ fi
490
+ @echo "Building with support for profile generation:"
491
+ $(MAKE) build_all_generate_profile
492
+ touch $@
493
+
494
+ # Run task with profile generation build to create profile information.
495
+ profile-run-stamp:
496
+ @echo "Running code to generate profile data (this can take a while):"
497
+ # First, we need to create a clean build with profile generation
498
+ # enabled.
499
+ $(MAKE) profile-gen-stamp
500
+ # Next, run the profile task to generate the profile information.
501
+ $(MAKE) run_profile_task
502
+ $(MAKE) build_all_merge_profile
503
+ # Remove profile generation binary since we are done with it.
504
+ $(MAKE) clean
505
+ # This is an expensive target to build and it does not have proper
506
+ # makefile dependency information. So, we create a "stamp" file
507
+ # to record its completion and avoid re-running it.
508
+ touch $@
509
+
510
+ build_all_generate_profile:
511
+ $(MAKE) build_all CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
512
+
513
+ run_profile_task:
514
+ @ # FIXME: can't run for a cross build
515
+ $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true
516
+
517
+ build_all_merge_profile:
518
+ $(LLVM_PROF_MERGER)
519
+
520
+ # Compile Python binary with profile guided optimization.
521
+ # To force re-running of the profile task, remove the profile-run-stamp file.
522
+ profile-opt: profile-run-stamp
523
+ @echo "Rebuilding with profile guided optimizations:"
524
+ -rm -f profile-clean-stamp
525
+ $(MAKE) build_all CFLAGS_NODIST="$(CFLAGS_NODIST) $(PGO_PROF_USE_FLAG)" LDFLAGS_NODIST="$(LDFLAGS_NODIST)"
526
+
527
+ # Compile and run with gcov
528
+ .PHONY=coverage coverage-lcov coverage-report
529
+ coverage:
530
+ @echo "Building with support for coverage checking:"
531
+ $(MAKE) clean profile-removal
532
+ $(MAKE) build_all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
533
+
534
+ coverage-lcov:
535
+ @echo "Creating Coverage HTML report with LCOV:"
536
+ @rm -f $(COVERAGE_INFO)
537
+ @rm -rf $(COVERAGE_REPORT)
538
+ @lcov --capture --directory $(abs_builddir) \
539
+ --base-directory $(realpath $(abs_builddir)) \
540
+ --path $(realpath $(abs_srcdir)) \
541
+ --output-file $(COVERAGE_INFO)
542
+ @ # remove 3rd party modules, system headers and internal files with
543
+ @ # debug, test or dummy functions.
544
+ @lcov --remove $(COVERAGE_INFO) \
545
+ '*/Modules/_blake2/impl/*' \
546
+ '*/Modules/_ctypes/libffi*/*' \
547
+ '*/Modules/_decimal/libmpdec/*' \
548
+ '*/Modules/_sha3/kcp/*' \
549
+ '*/Modules/expat/*' \
550
+ '*/Modules/zlib/*' \
551
+ '*/Include/*' \
552
+ '*/Modules/xx*.c' \
553
+ '*/Parser/listnode.c' \
554
+ '*/Python/pyfpe.c' \
555
+ '*/Python/pystrcmp.c' \
556
+ '/usr/include/*' \
557
+ '/usr/local/include/*' \
558
+ '/usr/lib/gcc/*' \
559
+ --output-file $(COVERAGE_INFO)
560
+ @genhtml $(COVERAGE_INFO) --output-directory $(COVERAGE_REPORT) \
561
+ $(COVERAGE_REPORT_OPTIONS)
562
+ @echo
563
+ @echo "lcov report at $(COVERAGE_REPORT)/index.html"
564
+ @echo
565
+
566
+ # Force regeneration of parser and importlib
567
+ coverage-report: regen-grammar regen-token regen-importlib
568
+ @ # build with coverage info
569
+ $(MAKE) coverage
570
+ @ # run tests, ignore failures
571
+ $(TESTRUNNER) $(TESTOPTS) || true
572
+ @ # build lcov report
573
+ $(MAKE) coverage-lcov
574
+
575
+ # Run "Argument Clinic" over all source files
576
+ .PHONY=clinic
577
+ clinic: check-clean-src $(srcdir)/Modules/_blake2/blake2s_impl.c
578
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py --make --srcdir $(srcdir)
579
+
580
+ # Build the interpreter
581
+ $(BUILDPYTHON): Programs/python.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
582
+ $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/python.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
583
+
584
+ platform: $(BUILDPYTHON) pybuilddir.txt
585
+ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -c 'import sys ; from sysconfig import get_platform ; print("%s-%d.%d" % (get_platform(), *sys.version_info[:2]))' >platform
586
+
587
+ # Create build directory and generate the sysconfig build-time data there.
588
+ # pybuilddir.txt contains the name of the build dir and is used for
589
+ # sys.path fixup -- see Modules/getpath.c.
590
+ # Since this step runs before shared modules are built, try to avoid bootstrap
591
+ # problems by creating a dummy pybuilddir.txt just to allow interpreter
592
+ # initialization to succeed. It will be overwritten by generate-posix-vars
593
+ # or removed in case of failure.
594
+ pybuilddir.txt: $(BUILDPYTHON)
595
+ @echo "none" > ./pybuilddir.txt
596
+ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -S -m sysconfig --generate-posix-vars ;\
597
+ if test $$? -ne 0 ; then \
598
+ echo "generate-posix-vars failed" ; \
599
+ rm -f ./pybuilddir.txt ; \
600
+ exit 1 ; \
601
+ fi
602
+
603
+ # This is shared by the math and cmath modules
604
+ Modules/_math.o: Modules/_math.c Modules/_math.h
605
+ $(CC) -c $(CCSHARED) $(PY_CORE_CFLAGS) -o $@ $<
606
+
607
+ # blake2s is auto-generated from blake2b
608
+ $(srcdir)/Modules/_blake2/blake2s_impl.c: $(srcdir)/Modules/_blake2/blake2b_impl.c $(srcdir)/Modules/_blake2/blake2b2s.py
609
+ $(PYTHON_FOR_REGEN) $(srcdir)/Modules/_blake2/blake2b2s.py
610
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/clinic/clinic.py -f $@
611
+
612
+ # Build the shared modules
613
+ # Under GNU make, MAKEFLAGS are sorted and normalized; the 's' for
614
+ # -s, --silent or --quiet is always the first char.
615
+ # Under BSD make, MAKEFLAGS might be " -s -v x=y".
616
+ # Ignore macros passed by GNU make, passed after --
617
+ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
618
+ @case "`echo X $$MAKEFLAGS | sed 's/^X //;s/ -- .*//'`" in \
619
+ *\ -s*|s*) quiet="-q";; \
620
+ *) quiet="";; \
621
+ esac; \
622
+ echo "$(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
623
+ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
624
+ $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build"; \
625
+ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' \
626
+ _TCLTK_INCLUDES='$(TCLTK_INCLUDES)' _TCLTK_LIBS='$(TCLTK_LIBS)' \
627
+ $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py $$quiet build
628
+
629
+
630
+ # Build static library
631
+ $(LIBRARY): $(LIBRARY_OBJS)
632
+ -rm -f $@
633
+ $(AR) $(ARFLAGS) $@ $(LIBRARY_OBJS)
634
+
635
+ libpython$(LDVERSION).so: $(LIBRARY_OBJS) $(DTRACE_OBJS)
636
+ if test $(INSTSONAME) != $(LDLIBRARY); then \
637
+ $(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \
638
+ $(LN) -f $(INSTSONAME) $@; \
639
+ else \
640
+ $(BLDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM); \
641
+ fi
642
+
643
+ libpython3.so: libpython$(LDVERSION).so
644
+ $(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^
645
+
646
+ libpython$(LDVERSION).dylib: $(LIBRARY_OBJS)
647
+ $(CC) -dynamiclib -Wl,-single_module $(PY_CORE_LDFLAGS) -undefined dynamic_lookup -Wl,-install_name,$(prefix)/lib/libpython$(LDVERSION).dylib -Wl,-compatibility_version,$(VERSION) -Wl,-current_version,$(VERSION) -o $@ $(LIBRARY_OBJS) $(DTRACE_OBJS) $(SHLIBS) $(LIBC) $(LIBM); \
648
+
649
+
650
+ libpython$(VERSION).sl: $(LIBRARY_OBJS)
651
+ $(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM)
652
+
653
+ # Copy up the gdb python hooks into a position where they can be automatically
654
+ # loaded by gdb during Lib/test/test_gdb.py
655
+ #
656
+ # Distributors are likely to want to install this somewhere else e.g. relative
657
+ # to the stripped DWARF data for the shared library.
658
+ gdbhooks: $(BUILDPYTHON)-gdb.py
659
+
660
+ SRC_GDB_HOOKS=$(srcdir)/Tools/gdb/libpython.py
661
+ $(BUILDPYTHON)-gdb.py: $(SRC_GDB_HOOKS)
662
+ $(INSTALL_DATA) $(SRC_GDB_HOOKS) $(BUILDPYTHON)-gdb.py
663
+
664
+ # This rule is here for OPENSTEP/Rhapsody/MacOSX. It builds a temporary
665
+ # minimal framework (not including the Lib directory and such) in the current
666
+ # directory.
667
+ RESSRCDIR=Mac/Resources/framework
668
+ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK): \
669
+ $(LIBRARY) \
670
+ $(RESSRCDIR)/Info.plist
671
+ $(INSTALL) -d -m $(DIRMODE) $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)
672
+ $(CC) -o $(LDLIBRARY) $(PY_CORE_LDFLAGS) -dynamiclib \
673
+ -all_load $(LIBRARY) -Wl,-single_module \
674
+ -install_name $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/$(VERSION)/$(PYTHONFRAMEWORK) \
675
+ -compatibility_version $(VERSION) \
676
+ -current_version $(VERSION) \
677
+ -framework CoreFoundation $(LIBS);
678
+ $(INSTALL) -d -m $(DIRMODE) \
679
+ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/English.lproj
680
+ $(INSTALL_DATA) $(RESSRCDIR)/Info.plist \
681
+ $(PYTHONFRAMEWORKDIR)/Versions/$(VERSION)/Resources/Info.plist
682
+ $(LN) -fsn $(VERSION) $(PYTHONFRAMEWORKDIR)/Versions/Current
683
+ $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(PYTHONFRAMEWORKDIR)/$(PYTHONFRAMEWORK)
684
+ $(LN) -fsn Versions/Current/Resources $(PYTHONFRAMEWORKDIR)/Resources
685
+
686
+ # This rule builds the Cygwin Python DLL and import library if configured
687
+ # for a shared core library; otherwise, this rule is a noop.
688
+ $(DLLLIBRARY) libpython$(LDVERSION).dll.a: $(LIBRARY_OBJS)
689
+ if test -n "$(DLLLIBRARY)"; then \
690
+ $(LDSHARED) -Wl,--out-implib=$@ -o $(DLLLIBRARY) $^ \
691
+ $(LIBS) $(MODLIBS) $(SYSLIBS); \
692
+ else true; \
693
+ fi
694
+
695
+
696
+ oldsharedmods: $(SHAREDMODS)
697
+
698
+
699
+ Makefile Modules/config.c: Makefile.pre \
700
+ $(srcdir)/Modules/config.c.in \
701
+ $(MAKESETUP) \
702
+ $(srcdir)/Modules/Setup \
703
+ Modules/Setup.local
704
+ $(SHELL) $(MAKESETUP) -c $(srcdir)/Modules/config.c.in \
705
+ -s Modules \
706
+ Modules/Setup.local \
707
+ $(srcdir)/Modules/Setup
708
+ @mv config.c Modules
709
+ @echo "The Makefile was updated, you may need to re-run make."
710
+
711
+
712
+ Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
713
+ $(LINKCC) $(PY_CORE_LDFLAGS) $(LINKFORSHARED) -o $@ Programs/_testembed.o $(BLDLIBRARY) $(LIBS) $(MODLIBS) $(SYSLIBS)
714
+
715
+ ############################################################################
716
+ # Importlib
717
+
718
+ Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
719
+
720
+ Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
721
+ $(LINKCC) $(PY_CORE_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS)
722
+
723
+ .PHONY: regen-importlib
724
+ regen-importlib: Programs/_freeze_importlib
725
+ # Regenerate Python/importlib_external.h
726
+ # from Lib/importlib/_bootstrap_external.py using _freeze_importlib
727
+ ./Programs/_freeze_importlib importlib._bootstrap_external \
728
+ $(srcdir)/Lib/importlib/_bootstrap_external.py \
729
+ $(srcdir)/Python/importlib_external.h.new
730
+ $(UPDATE_FILE) $(srcdir)/Python/importlib_external.h $(srcdir)/Python/importlib_external.h.new
731
+ # Regenerate Python/importlib.h from Lib/importlib/_bootstrap.py
732
+ # using _freeze_importlib
733
+ ./Programs/_freeze_importlib importlib._bootstrap \
734
+ $(srcdir)/Lib/importlib/_bootstrap.py \
735
+ $(srcdir)/Python/importlib.h.new
736
+ $(UPDATE_FILE) $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib.h.new
737
+ # Regenerate Python/importlib_zipimport.h from Lib/zipimport.py
738
+ # using _freeze_importlib
739
+ ./Programs/_freeze_importlib zipimport \
740
+ $(srcdir)/Lib/zipimport.py \
741
+ $(srcdir)/Python/importlib_zipimport.h.new
742
+ $(UPDATE_FILE) $(srcdir)/Python/importlib_zipimport.h $(srcdir)/Python/importlib_zipimport.h.new
743
+
744
+ regen-abidump: all
745
+ @$(MKDIR_P) $(srcdir)/Doc/data/
746
+ abidw "libpython$(LDVERSION).so" --no-architecture --out-file $(srcdir)/Doc/data/python$(LDVERSION).abi.new
747
+ @$(UPDATE_FILE) $(srcdir)/Doc/data/python$(LDVERSION).abi $(srcdir)/Doc/data/python$(LDVERSION).abi.new
748
+
749
+ check-abidump: all
750
+ abidiff "libpython$(LDVERSION).so" $(srcdir)/Doc/data/python$(LDVERSION).abi --drop-private-types \
751
+ --suppressions $(srcdir)/Doc/data/python$(LDVERSION).abi.ignorefile \
752
+ --no-architecture --no-added-syms
753
+
754
+ ############################################################################
755
+ # Regenerate all generated files
756
+
757
+ regen-all: regen-opcode regen-opcode-targets regen-typeslots regen-grammar \
758
+ regen-token regen-keyword regen-symbol regen-ast regen-importlib clinic
759
+
760
+ ############################################################################
761
+ # Special rules for object files
762
+
763
+ Modules/getbuildinfo.o: $(PARSER_OBJS) \
764
+ $(OBJECT_OBJS) \
765
+ $(PYTHON_OBJS) \
766
+ $(MODULE_OBJS) \
767
+ $(MODOBJS) \
768
+ $(DTRACE_OBJS) \
769
+ $(srcdir)/Modules/getbuildinfo.c
770
+ $(CC) -c $(PY_CORE_CFLAGS) \
771
+ -DGITVERSION="\"`LC_ALL=C $(GITVERSION)`\"" \
772
+ -DGITTAG="\"`LC_ALL=C $(GITTAG)`\"" \
773
+ -DGITBRANCH="\"`LC_ALL=C $(GITBRANCH)`\"" \
774
+ -o $@ $(srcdir)/Modules/getbuildinfo.c
775
+
776
+ Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
777
+ $(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
778
+ -DPREFIX='"$(prefix)"' \
779
+ -DEXEC_PREFIX='"$(exec_prefix)"' \
780
+ -DVERSION='"$(VERSION)"' \
781
+ -DVPATH='"$(VPATH)"' \
782
+ -o $@ $(srcdir)/Modules/getpath.c
783
+
784
+ Programs/python.o: $(srcdir)/Programs/python.c
785
+ $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/python.c
786
+
787
+ Programs/_testembed.o: $(srcdir)/Programs/_testembed.c
788
+ $(MAINCC) -c $(PY_CORE_CFLAGS) -o $@ $(srcdir)/Programs/_testembed.c
789
+
790
+ Modules/_sre.o: $(srcdir)/Modules/_sre.c $(srcdir)/Modules/sre.h $(srcdir)/Modules/sre_constants.h $(srcdir)/Modules/sre_lib.h
791
+
792
+ Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c $(srcdir)/Modules/posixmodule.h
793
+
794
+ Modules/grpmodule.o: $(srcdir)/Modules/grpmodule.c $(srcdir)/Modules/posixmodule.h
795
+
796
+ Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c $(srcdir)/Modules/posixmodule.h
797
+
798
+ Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c $(srcdir)/Modules/posixmodule.h
799
+
800
+ Python/dynload_shlib.o: $(srcdir)/Python/dynload_shlib.c Makefile
801
+ $(CC) -c $(PY_CORE_CFLAGS) \
802
+ -DSOABI='"$(SOABI)"' \
803
+ -o $@ $(srcdir)/Python/dynload_shlib.c
804
+
805
+ Python/dynload_hpux.o: $(srcdir)/Python/dynload_hpux.c Makefile
806
+ $(CC) -c $(PY_CORE_CFLAGS) \
807
+ -DSHLIB_EXT='"$(EXT_SUFFIX)"' \
808
+ -o $@ $(srcdir)/Python/dynload_hpux.c
809
+
810
+ Python/sysmodule.o: $(srcdir)/Python/sysmodule.c Makefile $(srcdir)/Include/pydtrace.h
811
+ $(CC) -c $(PY_CORE_CFLAGS) \
812
+ -DABIFLAGS='"$(ABIFLAGS)"' \
813
+ $(MULTIARCH_CPPFLAGS) \
814
+ -o $@ $(srcdir)/Python/sysmodule.c
815
+
816
+ $(IO_OBJS): $(IO_H)
817
+
818
+ .PHONY: regen-grammar
819
+ regen-grammar: regen-token
820
+ # Regenerate Include/graminit.h and Python/graminit.c
821
+ # from Grammar/Grammar using pgen
822
+ @$(MKDIR_P) Include
823
+ PYTHONPATH=$(srcdir) $(PYTHON_FOR_REGEN) -m Parser.pgen $(srcdir)/Grammar/Grammar \
824
+ $(srcdir)/Grammar/Tokens \
825
+ $(srcdir)/Include/graminit.h.new \
826
+ $(srcdir)/Python/graminit.c.new
827
+ $(UPDATE_FILE) $(srcdir)/Include/graminit.h $(srcdir)/Include/graminit.h.new
828
+ $(UPDATE_FILE) $(srcdir)/Python/graminit.c $(srcdir)/Python/graminit.c.new
829
+
830
+ .PHONY=regen-ast
831
+ regen-ast:
832
+ # Regenerate Include/Python-ast.h using Parser/asdl_c.py -h
833
+ $(MKDIR_P) $(srcdir)/Include
834
+ $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
835
+ -h $(srcdir)/Include/Python-ast.h.new \
836
+ $(srcdir)/Parser/Python.asdl
837
+ $(UPDATE_FILE) $(srcdir)/Include/Python-ast.h $(srcdir)/Include/Python-ast.h.new
838
+ # Regenerate Python/Python-ast.c using Parser/asdl_c.py -c
839
+ $(MKDIR_P) $(srcdir)/Python
840
+ $(PYTHON_FOR_REGEN) $(srcdir)/Parser/asdl_c.py \
841
+ -c $(srcdir)/Python/Python-ast.c.new \
842
+ $(srcdir)/Parser/Python.asdl
843
+ $(UPDATE_FILE) $(srcdir)/Python/Python-ast.c $(srcdir)/Python/Python-ast.c.new
844
+
845
+ .PHONY: regen-opcode
846
+ regen-opcode:
847
+ # Regenerate Include/opcode.h from Lib/opcode.py
848
+ # using Tools/scripts/generate_opcode_h.py
849
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_opcode_h.py \
850
+ $(srcdir)/Lib/opcode.py \
851
+ $(srcdir)/Include/opcode.h.new
852
+ $(UPDATE_FILE) $(srcdir)/Include/opcode.h $(srcdir)/Include/opcode.h.new
853
+
854
+ .PHONY: regen-token
855
+ regen-token:
856
+ # Regenerate Doc/library/token-list.inc from Grammar/Tokens
857
+ # using Tools/scripts/generate_token.py
858
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py rst \
859
+ $(srcdir)/Grammar/Tokens \
860
+ $(srcdir)/Doc/library/token-list.inc
861
+ # Regenerate Include/token.h from Grammar/Tokens
862
+ # using Tools/scripts/generate_token.py
863
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py h \
864
+ $(srcdir)/Grammar/Tokens \
865
+ $(srcdir)/Include/token.h
866
+ # Regenerate Parser/token.c from Grammar/Tokens
867
+ # using Tools/scripts/generate_token.py
868
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py c \
869
+ $(srcdir)/Grammar/Tokens \
870
+ $(srcdir)/Parser/token.c
871
+ # Regenerate Lib/token.py from Grammar/Tokens
872
+ # using Tools/scripts/generate_token.py
873
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_token.py py \
874
+ $(srcdir)/Grammar/Tokens \
875
+ $(srcdir)/Lib/token.py
876
+
877
+ .PHONY: regen-keyword
878
+ regen-keyword:
879
+ # Regenerate Lib/keyword.py from Grammar/Grammar and Grammar/Tokens
880
+ # using Parser/pgen
881
+ PYTHONPATH=$(srcdir) $(PYTHON_FOR_REGEN) -m Parser.pgen.keywordgen $(srcdir)/Grammar/Grammar \
882
+ $(srcdir)/Grammar/Tokens \
883
+ $(srcdir)/Lib/keyword.py.new
884
+ $(UPDATE_FILE) $(srcdir)/Lib/keyword.py $(srcdir)/Lib/keyword.py.new
885
+
886
+ .PHONY: regen-symbol
887
+ regen-symbol: $(srcdir)/Include/graminit.h
888
+ # Regenerate Lib/symbol.py from Include/graminit.h
889
+ # using Tools/scripts/generate_symbol_py.py
890
+ $(PYTHON_FOR_REGEN) $(srcdir)/Tools/scripts/generate_symbol_py.py \
891
+ $(srcdir)/Include/graminit.h \
892
+ $(srcdir)/Lib/symbol.py
893
+
894
+ Python/compile.o Python/symtable.o Python/ast_unparse.o Python/ast.o Python/future.o Parser/parsetok.o: $(srcdir)/Include/graminit.h $(srcdir)/Include/Python-ast.h
895
+
896
+ Python/getplatform.o: $(srcdir)/Python/getplatform.c
897
+ $(CC) -c $(PY_CORE_CFLAGS) -DPLATFORM='"$(MACHDEP)"' -o $@ $(srcdir)/Python/getplatform.c
898
+
899
+ Python/importdl.o: $(srcdir)/Python/importdl.c
900
+ $(CC) -c $(PY_CORE_CFLAGS) -I$(DLINCLDIR) -o $@ $(srcdir)/Python/importdl.c
901
+
902
+ Objects/unicodectype.o: $(srcdir)/Objects/unicodectype.c \
903
+ $(srcdir)/Objects/unicodetype_db.h
904
+
905
+ BYTESTR_DEPS = \
906
+ $(srcdir)/Objects/stringlib/count.h \
907
+ $(srcdir)/Objects/stringlib/ctype.h \
908
+ $(srcdir)/Objects/stringlib/fastsearch.h \
909
+ $(srcdir)/Objects/stringlib/find.h \
910
+ $(srcdir)/Objects/stringlib/join.h \
911
+ $(srcdir)/Objects/stringlib/partition.h \
912
+ $(srcdir)/Objects/stringlib/split.h \
913
+ $(srcdir)/Objects/stringlib/stringdefs.h \
914
+ $(srcdir)/Objects/stringlib/transmogrify.h
915
+
916
+ UNICODE_DEPS = \
917
+ $(srcdir)/Objects/stringlib/asciilib.h \
918
+ $(srcdir)/Objects/stringlib/codecs.h \
919
+ $(srcdir)/Objects/stringlib/count.h \
920
+ $(srcdir)/Objects/stringlib/fastsearch.h \
921
+ $(srcdir)/Objects/stringlib/find.h \
922
+ $(srcdir)/Objects/stringlib/find_max_char.h \
923
+ $(srcdir)/Objects/stringlib/localeutil.h \
924
+ $(srcdir)/Objects/stringlib/partition.h \
925
+ $(srcdir)/Objects/stringlib/replace.h \
926
+ $(srcdir)/Objects/stringlib/split.h \
927
+ $(srcdir)/Objects/stringlib/ucs1lib.h \
928
+ $(srcdir)/Objects/stringlib/ucs2lib.h \
929
+ $(srcdir)/Objects/stringlib/ucs4lib.h \
930
+ $(srcdir)/Objects/stringlib/undef.h \
931
+ $(srcdir)/Objects/stringlib/unicode_format.h \
932
+ $(srcdir)/Objects/stringlib/unicodedefs.h
933
+
934
+ Objects/bytes_methods.o: $(srcdir)/Objects/bytes_methods.c $(BYTESTR_DEPS)
935
+ Objects/bytesobject.o: $(srcdir)/Objects/bytesobject.c $(BYTESTR_DEPS)
936
+ Objects/bytearrayobject.o: $(srcdir)/Objects/bytearrayobject.c $(BYTESTR_DEPS)
937
+
938
+ Objects/unicodeobject.o: $(srcdir)/Objects/unicodeobject.c $(UNICODE_DEPS)
939
+
940
+ Objects/odictobject.o: $(srcdir)/Objects/dict-common.h
941
+ Objects/dictobject.o: $(srcdir)/Objects/stringlib/eq.h $(srcdir)/Objects/dict-common.h
942
+ Objects/setobject.o: $(srcdir)/Objects/stringlib/eq.h
943
+
944
+ .PHONY: regen-opcode-targets
945
+ regen-opcode-targets:
946
+ # Regenerate Python/opcode_targets.h from Lib/opcode.py
947
+ # using Python/makeopcodetargets.py
948
+ $(PYTHON_FOR_REGEN) $(srcdir)/Python/makeopcodetargets.py \
949
+ $(srcdir)/Python/opcode_targets.h.new
950
+ $(UPDATE_FILE) $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/opcode_targets.h.new
951
+
952
+ Python/ceval.o: $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/ceval_gil.h \
953
+ $(srcdir)/Python/condvar.h
954
+
955
+ Python/frozen.o: $(srcdir)/Python/importlib.h $(srcdir)/Python/importlib_external.h \
956
+ $(srcdir)/Python/importlib_zipimport.h
957
+
958
+ # Generate DTrace probe macros, then rename them (PYTHON_ -> PyDTrace_) to
959
+ # follow our naming conventions. dtrace(1) uses the output filename to generate
960
+ # an include guard, so we can't use a pipeline to transform its output.
961
+ Include/pydtrace_probes.h: $(srcdir)/Include/pydtrace.d
962
+ $(MKDIR_P) Include
963
+ $(DTRACE) $(DFLAGS) -o $@ -h -s $<
964
+ : sed in-place edit with POSIX-only tools
965
+ sed 's/PYTHON_/PyDTrace_/' $@ > $@.tmp
966
+ mv $@.tmp $@
967
+
968
+ Python/ceval.o: $(srcdir)/Include/pydtrace.h
969
+ Python/import.o: $(srcdir)/Include/pydtrace.h
970
+ Modules/gcmodule.o: $(srcdir)/Include/pydtrace.h
971
+
972
+ Python/pydtrace.o: $(srcdir)/Include/pydtrace.d $(DTRACE_DEPS)
973
+ $(DTRACE) $(DFLAGS) -o $@ -G -s $< $(DTRACE_DEPS)
974
+
975
+ Objects/typeobject.o: Objects/typeslots.inc
976
+
977
+ .PHONY: regen-typeslots
978
+ regen-typeslots:
979
+ # Regenerate Objects/typeslots.inc from Include/typeslotsh
980
+ # using Objects/typeslots.py
981
+ $(PYTHON_FOR_REGEN) $(srcdir)/Objects/typeslots.py \
982
+ < $(srcdir)/Include/typeslots.h \
983
+ $(srcdir)/Objects/typeslots.inc.new
984
+ $(UPDATE_FILE) $(srcdir)/Objects/typeslots.inc $(srcdir)/Objects/typeslots.inc.new
985
+
986
+ ############################################################################
987
+ # Header files
988
+
989
+ PYTHON_HEADERS= \
990
+ $(srcdir)/Include/Python.h \
991
+ $(srcdir)/Include/abstract.h \
992
+ $(srcdir)/Include/asdl.h \
993
+ $(srcdir)/Include/ast.h \
994
+ $(srcdir)/Include/bitset.h \
995
+ $(srcdir)/Include/bltinmodule.h \
996
+ $(srcdir)/Include/boolobject.h \
997
+ $(srcdir)/Include/bytearrayobject.h \
998
+ $(srcdir)/Include/bytes_methods.h \
999
+ $(srcdir)/Include/bytesobject.h \
1000
+ $(srcdir)/Include/cellobject.h \
1001
+ $(srcdir)/Include/ceval.h \
1002
+ $(srcdir)/Include/classobject.h \
1003
+ $(srcdir)/Include/code.h \
1004
+ $(srcdir)/Include/codecs.h \
1005
+ $(srcdir)/Include/compile.h \
1006
+ $(srcdir)/Include/complexobject.h \
1007
+ $(srcdir)/Include/context.h \
1008
+ $(srcdir)/Include/descrobject.h \
1009
+ $(srcdir)/Include/dictobject.h \
1010
+ $(srcdir)/Include/dtoa.h \
1011
+ $(srcdir)/Include/dynamic_annotations.h \
1012
+ $(srcdir)/Include/enumobject.h \
1013
+ $(srcdir)/Include/errcode.h \
1014
+ $(srcdir)/Include/eval.h \
1015
+ $(srcdir)/Include/fileobject.h \
1016
+ $(srcdir)/Include/fileutils.h \
1017
+ $(srcdir)/Include/floatobject.h \
1018
+ $(srcdir)/Include/frameobject.h \
1019
+ $(srcdir)/Include/funcobject.h \
1020
+ $(srcdir)/Include/genobject.h \
1021
+ $(srcdir)/Include/import.h \
1022
+ $(srcdir)/Include/interpreteridobject.h \
1023
+ $(srcdir)/Include/intrcheck.h \
1024
+ $(srcdir)/Include/iterobject.h \
1025
+ $(srcdir)/Include/listobject.h \
1026
+ $(srcdir)/Include/longintrepr.h \
1027
+ $(srcdir)/Include/longobject.h \
1028
+ $(srcdir)/Include/marshal.h \
1029
+ $(srcdir)/Include/memoryobject.h \
1030
+ $(srcdir)/Include/methodobject.h \
1031
+ $(srcdir)/Include/modsupport.h \
1032
+ $(srcdir)/Include/moduleobject.h \
1033
+ $(srcdir)/Include/namespaceobject.h \
1034
+ $(srcdir)/Include/node.h \
1035
+ $(srcdir)/Include/object.h \
1036
+ $(srcdir)/Include/objimpl.h \
1037
+ $(srcdir)/Include/odictobject.h \
1038
+ $(srcdir)/Include/opcode.h \
1039
+ $(srcdir)/Include/osdefs.h \
1040
+ $(srcdir)/Include/osmodule.h \
1041
+ $(srcdir)/Include/patchlevel.h \
1042
+ $(srcdir)/Include/picklebufobject.h \
1043
+ $(srcdir)/Include/pyarena.h \
1044
+ $(srcdir)/Include/pycapsule.h \
1045
+ $(srcdir)/Include/pyctype.h \
1046
+ $(srcdir)/Include/pydebug.h \
1047
+ $(srcdir)/Include/pydtrace.h \
1048
+ $(srcdir)/Include/pyerrors.h \
1049
+ $(srcdir)/Include/pyfpe.h \
1050
+ $(srcdir)/Include/pyhash.h \
1051
+ $(srcdir)/Include/pylifecycle.h \
1052
+ $(srcdir)/Include/pymacconfig.h \
1053
+ $(srcdir)/Include/pymacro.h \
1054
+ $(srcdir)/Include/pymath.h \
1055
+ $(srcdir)/Include/pymem.h \
1056
+ $(srcdir)/Include/pyport.h \
1057
+ $(srcdir)/Include/pystate.h \
1058
+ $(srcdir)/Include/pystrcmp.h \
1059
+ $(srcdir)/Include/pystrhex.h \
1060
+ $(srcdir)/Include/pystrtod.h \
1061
+ $(srcdir)/Include/pythonrun.h \
1062
+ $(srcdir)/Include/pythread.h \
1063
+ $(srcdir)/Include/pytime.h \
1064
+ $(srcdir)/Include/rangeobject.h \
1065
+ $(srcdir)/Include/setobject.h \
1066
+ $(srcdir)/Include/sliceobject.h \
1067
+ $(srcdir)/Include/structmember.h \
1068
+ $(srcdir)/Include/structseq.h \
1069
+ $(srcdir)/Include/symtable.h \
1070
+ $(srcdir)/Include/sysmodule.h \
1071
+ $(srcdir)/Include/token.h \
1072
+ $(srcdir)/Include/traceback.h \
1073
+ $(srcdir)/Include/tracemalloc.h \
1074
+ $(srcdir)/Include/tupleobject.h \
1075
+ $(srcdir)/Include/ucnhash.h \
1076
+ $(srcdir)/Include/unicodeobject.h \
1077
+ $(srcdir)/Include/warnings.h \
1078
+ $(srcdir)/Include/weakrefobject.h \
1079
+ \
1080
+ pyconfig.h \
1081
+ $(PARSER_HEADERS) \
1082
+ $(srcdir)/Include/Python-ast.h \
1083
+ \
1084
+ $(srcdir)/Include/cpython/abstract.h \
1085
+ $(srcdir)/Include/cpython/dictobject.h \
1086
+ $(srcdir)/Include/cpython/fileobject.h \
1087
+ $(srcdir)/Include/cpython/initconfig.h \
1088
+ $(srcdir)/Include/cpython/interpreteridobject.h \
1089
+ $(srcdir)/Include/cpython/object.h \
1090
+ $(srcdir)/Include/cpython/objimpl.h \
1091
+ $(srcdir)/Include/cpython/pyerrors.h \
1092
+ $(srcdir)/Include/cpython/pylifecycle.h \
1093
+ $(srcdir)/Include/cpython/pymem.h \
1094
+ $(srcdir)/Include/cpython/pystate.h \
1095
+ $(srcdir)/Include/cpython/sysmodule.h \
1096
+ $(srcdir)/Include/cpython/traceback.h \
1097
+ $(srcdir)/Include/cpython/tupleobject.h \
1098
+ $(srcdir)/Include/cpython/unicodeobject.h \
1099
+ \
1100
+ $(srcdir)/Include/internal/pycore_accu.h \
1101
+ $(srcdir)/Include/internal/pycore_atomic.h \
1102
+ $(srcdir)/Include/internal/pycore_ceval.h \
1103
+ $(srcdir)/Include/internal/pycore_code.h \
1104
+ $(srcdir)/Include/internal/pycore_condvar.h \
1105
+ $(srcdir)/Include/internal/pycore_context.h \
1106
+ $(srcdir)/Include/internal/pycore_fileutils.h \
1107
+ $(srcdir)/Include/internal/pycore_getopt.h \
1108
+ $(srcdir)/Include/internal/pycore_gil.h \
1109
+ $(srcdir)/Include/internal/pycore_hamt.h \
1110
+ $(srcdir)/Include/internal/pycore_initconfig.h \
1111
+ $(srcdir)/Include/internal/pycore_object.h \
1112
+ $(srcdir)/Include/internal/pycore_pathconfig.h \
1113
+ $(srcdir)/Include/internal/pycore_pyerrors.h \
1114
+ $(srcdir)/Include/internal/pycore_pyhash.h \
1115
+ $(srcdir)/Include/internal/pycore_pylifecycle.h \
1116
+ $(srcdir)/Include/internal/pycore_pymem.h \
1117
+ $(srcdir)/Include/internal/pycore_pystate.h \
1118
+ $(srcdir)/Include/internal/pycore_traceback.h \
1119
+ $(srcdir)/Include/internal/pycore_tupleobject.h \
1120
+ $(srcdir)/Include/internal/pycore_warnings.h \
1121
+ $(DTRACE_HEADERS)
1122
+
1123
+ $(LIBRARY_OBJS) $(MODOBJS) Programs/python.o: $(PYTHON_HEADERS)
1124
+
1125
+
1126
+ ######################################################################
1127
+
1128
+ TESTOPTS= $(EXTRATESTOPTS)
1129
+ TESTPYTHON= $(RUNSHARED) ./$(BUILDPYTHON) $(TESTPYTHONOPTS)
1130
+ TESTRUNNER= $(TESTPYTHON) $(srcdir)/Tools/scripts/run_tests.py
1131
+ TESTTIMEOUT= 1200
1132
+
1133
+ .PHONY: test testall testuniversal buildbottest pythoninfo
1134
+
1135
+ # Remove "test_python_*" directories of previous failed test jobs.
1136
+ # Pass TESTOPTS options because it can contain --tempdir option.
1137
+ cleantest: build_all
1138
+ $(TESTRUNNER) $(TESTOPTS) --cleanup
1139
+
1140
+ # Run a basic set of regression tests.
1141
+ # This excludes some tests that are particularly resource-intensive.
1142
+ test: build_all platform
1143
+ $(TESTRUNNER) $(TESTOPTS)
1144
+
1145
+ # Run the full test suite twice - once without .pyc files, and once with.
1146
+ # In the past, we've had problems where bugs in the marshalling or
1147
+ # elsewhere caused bytecode read from .pyc files to behave differently
1148
+ # than bytecode generated directly from a .py source file. Sometimes
1149
+ # the bytecode read from a .pyc file had the bug, sometimes the directly
1150
+ # generated bytecode. This is sometimes a very shy bug needing a lot of
1151
+ # sample data.
1152
+ testall: build_all platform
1153
+ -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
1154
+ $(TESTPYTHON) -E $(srcdir)/Lib/compileall.py
1155
+ -find $(srcdir)/Lib -name '*.py[co]' -print | xargs rm -f
1156
+ -$(TESTRUNNER) -u all $(TESTOPTS)
1157
+ $(TESTRUNNER) -u all $(TESTOPTS)
1158
+
1159
+ # Run the test suite for both architectures in a Universal build on OSX.
1160
+ # Must be run on an Intel box.
1161
+ testuniversal: build_all platform
1162
+ @if [ `arch` != 'i386' ]; then \
1163
+ echo "This can only be used on OSX/i386" ;\
1164
+ exit 1 ;\
1165
+ fi
1166
+ $(TESTRUNNER) -u all $(TESTOPTS)
1167
+ $(RUNSHARED) /usr/libexec/oah/translate \
1168
+ ./$(BUILDPYTHON) -E -m test -j 0 -u all $(TESTOPTS)
1169
+
1170
+ # Like testall, but with only one pass and without multiple processes.
1171
+ # Run an optional script to include information about the build environment.
1172
+ buildbottest: build_all platform
1173
+ -@if which pybuildbot.identify >/dev/null 2>&1; then \
1174
+ pybuildbot.identify "CC='$(CC)'" "CXX='$(CXX)'"; \
1175
+ fi
1176
+ $(TESTRUNNER) -j 1 -u all -W --slowest --fail-env-changed --timeout=$(TESTTIMEOUT) $(TESTOPTS)
1177
+
1178
+ pythoninfo: build_all
1179
+ $(RUNSHARED) ./$(BUILDPYTHON) -m test.pythoninfo
1180
+
1181
+ QUICKTESTOPTS= $(TESTOPTS) -x test_subprocess test_io test_lib2to3 \
1182
+ test_multibytecodec test_urllib2_localnet test_itertools \
1183
+ test_multiprocessing_fork test_multiprocessing_spawn \
1184
+ test_multiprocessing_forkserver \
1185
+ test_mailbox test_socket test_poll \
1186
+ test_select test_zipfile test_concurrent_futures
1187
+ quicktest: build_all platform
1188
+ $(TESTRUNNER) $(QUICKTESTOPTS)
1189
+
1190
+ # SSL tests
1191
+ .PHONY: multisslcompile multissltest
1192
+ multisslcompile: build_all
1193
+ $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py --steps=modules
1194
+
1195
+ multissltest: build_all
1196
+ $(RUNSHARED) ./$(BUILDPYTHON) Tools/ssl/multissltests.py
1197
+
1198
+ install: commoninstall bininstall maninstall
1199
+ if test "x$(ENSUREPIP)" != "xno" ; then \
1200
+ case $(ENSUREPIP) in \
1201
+ upgrade) ensurepip="--upgrade" ;; \
1202
+ install|*) ensurepip="" ;; \
1203
+ esac; \
1204
+ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -m ensurepip \
1205
+ $$ensurepip --root=$(DESTDIR)/ ; \
1206
+ fi
1207
+
1208
+ altinstall: commoninstall
1209
+ if test "x$(ENSUREPIP)" != "xno" ; then \
1210
+ case $(ENSUREPIP) in \
1211
+ upgrade) ensurepip="--altinstall --upgrade" ;; \
1212
+ install|*) ensurepip="--altinstall" ;; \
1213
+ esac; \
1214
+ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) -m ensurepip \
1215
+ $$ensurepip --root=$(DESTDIR)/ ; \
1216
+ fi
1217
+
1218
+ commoninstall: check-clean-src \
1219
+ altbininstall libinstall inclinstall libainstall \
1220
+ sharedinstall oldsharedinstall altmaninstall \
1221
+
1222
+
1223
+ # Install shared libraries enabled by Setup
1224
+ DESTDIRS= $(exec_prefix) $(LIBDIR) $(BINLIBDEST) $(DESTSHARED)
1225
+
1226
+ oldsharedinstall: $(DESTSHARED) $(SHAREDMODS)
1227
+ @for i in X $(SHAREDMODS); do \
1228
+ if test $$i != X; then \
1229
+ echo $(INSTALL_SHARED) $$i $(DESTSHARED)/`basename $$i`; \
1230
+ $(INSTALL_SHARED) $$i $(DESTDIR)$(DESTSHARED)/`basename $$i`; \
1231
+ fi; \
1232
+ done
1233
+
1234
+ $(DESTSHARED):
1235
+ @for i in $(DESTDIRS); \
1236
+ do \
1237
+ if test ! -d $(DESTDIR)$$i; then \
1238
+ echo "Creating directory $$i"; \
1239
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
1240
+ else true; \
1241
+ fi; \
1242
+ done
1243
+
1244
+ # Install the interpreter with $(VERSION) affixed
1245
+ # This goes into $(exec_prefix)
1246
+ altbininstall: $(BUILDPYTHON)
1247
+ @for i in $(BINDIR) $(LIBDIR); \
1248
+ do \
1249
+ if test ! -d $(DESTDIR)$$i; then \
1250
+ echo "Creating directory $$i"; \
1251
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
1252
+ else true; \
1253
+ fi; \
1254
+ done
1255
+ if test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \
1256
+ $(INSTALL_PROGRAM) $(BUILDPYTHON) $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
1257
+ else \
1258
+ $(INSTALL_PROGRAM) $(STRIPFLAG) Mac/pythonw $(DESTDIR)$(BINDIR)/python$(LDVERSION)$(EXE); \
1259
+ fi
1260
+ -if test "$(VERSION)" != "$(LDVERSION)"; then \
1261
+ if test -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE) -o -h $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
1262
+ then rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
1263
+ fi; \
1264
+ (cd $(DESTDIR)$(BINDIR); $(LN) python$(LDVERSION)$(EXE) python$(VERSION)$(EXE)); \
1265
+ fi
1266
+ if test -f $(LDLIBRARY) && test "$(PYTHONFRAMEWORKDIR)" = "no-framework" ; then \
1267
+ if test -n "$(DLLLIBRARY)" ; then \
1268
+ $(INSTALL_SHARED) $(DLLLIBRARY) $(DESTDIR)$(BINDIR); \
1269
+ else \
1270
+ $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(LIBDIR)/$(INSTSONAME); \
1271
+ if test $(LDLIBRARY) != $(INSTSONAME); then \
1272
+ (cd $(DESTDIR)$(LIBDIR); $(LN) -sf $(INSTSONAME) $(LDLIBRARY)) \
1273
+ fi \
1274
+ fi; \
1275
+ if test -n "$(PY3LIBRARY)"; then \
1276
+ $(INSTALL_SHARED) $(PY3LIBRARY) $(DESTDIR)$(LIBDIR)/$(PY3LIBRARY); \
1277
+ fi; \
1278
+ else true; \
1279
+ fi
1280
+ if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
1281
+ rm -f $(DESTDIR)$(BINDIR)python$(VERSION)-32$(EXE); \
1282
+ lipo $(LIPO_32BIT_FLAGS) \
1283
+ -output $(DESTDIR)$(BINDIR)/python$(VERSION)-32$(EXE) \
1284
+ $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
1285
+ fi
1286
+ if test "x$(LIPO_INTEL64_FLAGS)" != "x" ; then \
1287
+ rm -f $(DESTDIR)$(BINDIR)python$(VERSION)-intel64$(EXE); \
1288
+ lipo $(LIPO_INTEL64_FLAGS) \
1289
+ -output $(DESTDIR)$(BINDIR)/python$(VERSION)-intel64$(EXE) \
1290
+ $(DESTDIR)$(BINDIR)/python$(VERSION)$(EXE); \
1291
+ fi
1292
+
1293
+ bininstall: altbininstall
1294
+ if test ! -d $(DESTDIR)$(LIBPC); then \
1295
+ echo "Creating directory $(LIBPC)"; \
1296
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(LIBPC); \
1297
+ fi
1298
+ -if test -f $(DESTDIR)$(BINDIR)/python3$(EXE) -o -h $(DESTDIR)$(BINDIR)/python3$(EXE); \
1299
+ then rm -f $(DESTDIR)$(BINDIR)/python3$(EXE); \
1300
+ else true; \
1301
+ fi
1302
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python3$(EXE))
1303
+ -if test "$(VERSION)" != "$(LDVERSION)"; then \
1304
+ rm -f $(DESTDIR)$(BINDIR)/python$(VERSION)-config; \
1305
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(LDVERSION)-config python$(VERSION)-config); \
1306
+ rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION).pc; \
1307
+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python-$(LDVERSION).pc); \
1308
+ rm -f $(DESTDIR)$(LIBPC)/python-$(LDVERSION)-embed.pc; \
1309
+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python-$(LDVERSION)-embed.pc); \
1310
+ fi
1311
+ -rm -f $(DESTDIR)$(BINDIR)/python3-config
1312
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-config python3-config)
1313
+ -rm -f $(DESTDIR)$(LIBPC)/python3.pc
1314
+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION).pc python3.pc)
1315
+ -rm -f $(DESTDIR)$(LIBPC)/python3-embed.pc
1316
+ (cd $(DESTDIR)$(LIBPC); $(LN) -s python-$(VERSION)-embed.pc python3-embed.pc)
1317
+ -rm -f $(DESTDIR)$(BINDIR)/idle3
1318
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
1319
+ -rm -f $(DESTDIR)$(BINDIR)/pydoc3
1320
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
1321
+ -rm -f $(DESTDIR)$(BINDIR)/2to3
1322
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
1323
+ if test "x$(LIPO_32BIT_FLAGS)" != "x" ; then \
1324
+ rm -f $(DESTDIR)$(BINDIR)/python3-32$(EXE); \
1325
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-32$(EXE) python3-32$(EXE)) \
1326
+ fi
1327
+ if test "x$(LIPO_INTEL64_FLAGS)" != "x" ; then \
1328
+ rm -f $(DESTDIR)$(BINDIR)/python3-intel64$(EXE); \
1329
+ (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)-intel64$(EXE) python3-intel64$(EXE)) \
1330
+ fi
1331
+
1332
+ # Install the versioned manual page
1333
+ altmaninstall:
1334
+ @for i in $(MANDIR) $(MANDIR)/man1; \
1335
+ do \
1336
+ if test ! -d $(DESTDIR)$$i; then \
1337
+ echo "Creating directory $$i"; \
1338
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
1339
+ else true; \
1340
+ fi; \
1341
+ done
1342
+ $(INSTALL_DATA) $(srcdir)/Misc/python.man \
1343
+ $(DESTDIR)$(MANDIR)/man1/python$(VERSION).1
1344
+
1345
+ # Install the unversioned manual page
1346
+ maninstall: altmaninstall
1347
+ -rm -f $(DESTDIR)$(MANDIR)/man1/python3.1
1348
+ (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python3.1)
1349
+
1350
+ # Install the library
1351
+ XMLLIBSUBDIRS= xml xml/dom xml/etree xml/parsers xml/sax
1352
+ LIBSUBDIRS= tkinter tkinter/test tkinter/test/test_tkinter \
1353
+ tkinter/test/test_ttk site-packages test \
1354
+ test/audiodata \
1355
+ test/capath test/data \
1356
+ test/cjkencodings test/decimaltestdata \
1357
+ test/xmltestdata test/xmltestdata/c14n-20 \
1358
+ test/dtracedata \
1359
+ test/eintrdata \
1360
+ test/imghdrdata \
1361
+ test/libregrtest \
1362
+ test/subprocessdata test/sndhdrdata test/support \
1363
+ test/tracedmodules test/encoded_modules \
1364
+ test/test_import \
1365
+ test/test_import/data \
1366
+ test/test_import/data/circular_imports \
1367
+ test/test_import/data/circular_imports/subpkg \
1368
+ test/test_import/data/package \
1369
+ test/test_import/data/package2 \
1370
+ importlib \
1371
+ importlib/metadata \
1372
+ test/test_importlib \
1373
+ test/test_importlib/builtin \
1374
+ test/test_importlib/data \
1375
+ test/test_importlib/data01 \
1376
+ test/test_importlib/data01/subdirectory \
1377
+ test/test_importlib/data02 \
1378
+ test/test_importlib/data02/one \
1379
+ test/test_importlib/data02/two \
1380
+ test/test_importlib/data03 \
1381
+ test/test_importlib/data03/namespace \
1382
+ test/test_importlib/data03/namespace/portion1 \
1383
+ test/test_importlib/data03/namespace/portion2 \
1384
+ test/test_importlib/extension \
1385
+ test/test_importlib/frozen \
1386
+ test/test_importlib/import_ \
1387
+ test/test_importlib/namespace_pkgs \
1388
+ test/test_importlib/namespace_pkgs/both_portions \
1389
+ test/test_importlib/namespace_pkgs/both_portions/foo \
1390
+ test/test_importlib/namespace_pkgs/module_and_namespace_package \
1391
+ test/test_importlib/namespace_pkgs/module_and_namespace_package/a_test \
1392
+ test/test_importlib/namespace_pkgs/not_a_namespace_pkg \
1393
+ test/test_importlib/namespace_pkgs/not_a_namespace_pkg/foo \
1394
+ test/test_importlib/namespace_pkgs/portion1 \
1395
+ test/test_importlib/namespace_pkgs/portion1/foo \
1396
+ test/test_importlib/namespace_pkgs/portion2 \
1397
+ test/test_importlib/namespace_pkgs/portion2/foo \
1398
+ test/test_importlib/namespace_pkgs/project1 \
1399
+ test/test_importlib/namespace_pkgs/project1/parent \
1400
+ test/test_importlib/namespace_pkgs/project1/parent/child \
1401
+ test/test_importlib/namespace_pkgs/project2 \
1402
+ test/test_importlib/namespace_pkgs/project2/parent \
1403
+ test/test_importlib/namespace_pkgs/project2/parent/child \
1404
+ test/test_importlib/namespace_pkgs/project3 \
1405
+ test/test_importlib/namespace_pkgs/project3/parent \
1406
+ test/test_importlib/namespace_pkgs/project3/parent/child \
1407
+ test/test_importlib/source \
1408
+ test/test_importlib/zipdata01 \
1409
+ test/test_importlib/zipdata02 \
1410
+ test/ziptestdata \
1411
+ asyncio \
1412
+ test/test_asyncio \
1413
+ collections concurrent concurrent/futures encodings \
1414
+ email email/mime test/test_email test/test_email/data \
1415
+ ensurepip ensurepip/_bundled \
1416
+ html json test/test_json http dbm xmlrpc \
1417
+ sqlite3 sqlite3/test \
1418
+ logging csv wsgiref urllib \
1419
+ lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
1420
+ lib2to3/tests/data lib2to3/tests/data/fixers \
1421
+ lib2to3/tests/data/fixers/myfixes \
1422
+ ctypes ctypes/test ctypes/macholib \
1423
+ idlelib idlelib/Icons idlelib/idle_test \
1424
+ distutils distutils/command distutils/tests $(XMLLIBSUBDIRS) \
1425
+ test/test_tools test/test_warnings test/test_warnings/data \
1426
+ turtledemo \
1427
+ multiprocessing multiprocessing/dummy \
1428
+ unittest unittest/test unittest/test/testmock \
1429
+ venv venv/scripts venv/scripts/common venv/scripts/posix \
1430
+ curses pydoc_data
1431
+ libinstall: build_all $(srcdir)/Modules/xxmodule.c
1432
+ @for i in $(SCRIPTDIR) $(LIBDEST); \
1433
+ do \
1434
+ if test ! -d $(DESTDIR)$$i; then \
1435
+ echo "Creating directory $$i"; \
1436
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
1437
+ else true; \
1438
+ fi; \
1439
+ done
1440
+ @for d in $(LIBSUBDIRS); \
1441
+ do \
1442
+ a=$(srcdir)/Lib/$$d; \
1443
+ if test ! -d $$a; then continue; else true; fi; \
1444
+ b=$(LIBDEST)/$$d; \
1445
+ if test ! -d $(DESTDIR)$$b; then \
1446
+ echo "Creating directory $$b"; \
1447
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$b; \
1448
+ else true; \
1449
+ fi; \
1450
+ done
1451
+ @for i in $(srcdir)/Lib/*.py; \
1452
+ do \
1453
+ if test -x $$i; then \
1454
+ $(INSTALL_SCRIPT) $$i $(DESTDIR)$(LIBDEST); \
1455
+ echo $(INSTALL_SCRIPT) $$i $(LIBDEST); \
1456
+ else \
1457
+ $(INSTALL_DATA) $$i $(DESTDIR)$(LIBDEST); \
1458
+ echo $(INSTALL_DATA) $$i $(LIBDEST); \
1459
+ fi; \
1460
+ done
1461
+ @for d in $(LIBSUBDIRS); \
1462
+ do \
1463
+ a=$(srcdir)/Lib/$$d; \
1464
+ if test ! -d $$a; then continue; else true; fi; \
1465
+ if test `ls $$a | wc -l` -lt 1; then continue; fi; \
1466
+ b=$(LIBDEST)/$$d; \
1467
+ for i in $$a/*; \
1468
+ do \
1469
+ case $$i in \
1470
+ *CVS) ;; \
1471
+ *.py[co]) ;; \
1472
+ *.orig) ;; \
1473
+ *~) ;; \
1474
+ *) \
1475
+ if test -d $$i; then continue; fi; \
1476
+ if test -x $$i; then \
1477
+ echo $(INSTALL_SCRIPT) $$i $$b; \
1478
+ $(INSTALL_SCRIPT) $$i $(DESTDIR)$$b; \
1479
+ else \
1480
+ echo $(INSTALL_DATA) $$i $$b; \
1481
+ $(INSTALL_DATA) $$i $(DESTDIR)$$b; \
1482
+ fi;; \
1483
+ esac; \
1484
+ done; \
1485
+ done
1486
+ $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py \
1487
+ $(DESTDIR)$(LIBDEST); \
1488
+ $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
1489
+ if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
1490
+ $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
1491
+ $(DESTDIR)$(LIBDEST)/distutils/tests ; \
1492
+ fi
1493
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1494
+ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
1495
+ -j0 -d $(LIBDEST) -f \
1496
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
1497
+ $(DESTDIR)$(LIBDEST)
1498
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1499
+ $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
1500
+ -j0 -d $(LIBDEST) -f \
1501
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
1502
+ $(DESTDIR)$(LIBDEST)
1503
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1504
+ $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
1505
+ -j0 -d $(LIBDEST) -f \
1506
+ -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
1507
+ $(DESTDIR)$(LIBDEST)
1508
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1509
+ $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
1510
+ -j0 -d $(LIBDEST)/site-packages -f \
1511
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
1512
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1513
+ $(PYTHON_FOR_BUILD) -Wi -O $(DESTDIR)$(LIBDEST)/compileall.py \
1514
+ -j0 -d $(LIBDEST)/site-packages -f \
1515
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
1516
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1517
+ $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
1518
+ -j0 -d $(LIBDEST)/site-packages -f \
1519
+ -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
1520
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1521
+ $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
1522
+ -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
1523
+ $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
1524
+
1525
+ # bpo-21536: Misc/python-config.sh is generated in the build directory
1526
+ # from $(srcdir)Misc/python-config.sh.in.
1527
+ python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
1528
+ @ # Substitution happens here, as the completely-expanded BINDIR
1529
+ @ # is not available in configure
1530
+ sed -e "s,@EXENAME@,$(BINDIR)/python$(LDVERSION)$(EXE)," < $(srcdir)/Misc/python-config.in >python-config.py
1531
+ @ # Replace makefile compat. variable references with shell script compat. ones; $(VAR) -> ${VAR}
1532
+ LC_ALL=C sed -e 's,\$$(\([A-Za-z0-9_]*\)),\$$\{\1\},g' < Misc/python-config.sh >python-config
1533
+ @ # On Darwin, always use the python version of the script, the shell
1534
+ @ # version doesn't use the compiler customizations that are provided
1535
+ @ # in python (_osx_support.py).
1536
+ @if test `uname -s` = Darwin; then \
1537
+ cp python-config.py python-config; \
1538
+ fi
1539
+
1540
+
1541
+ # Install the include files
1542
+ INCLDIRSTOMAKE=$(INCLUDEDIR) $(CONFINCLUDEDIR) $(INCLUDEPY) $(CONFINCLUDEPY)
1543
+ inclinstall:
1544
+ @for i in $(INCLDIRSTOMAKE); \
1545
+ do \
1546
+ if test ! -d $(DESTDIR)$$i; then \
1547
+ echo "Creating directory $$i"; \
1548
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
1549
+ else true; \
1550
+ fi; \
1551
+ done
1552
+ @if test ! -d $(DESTDIR)$(INCLUDEPY)/cpython; then \
1553
+ echo "Creating directory $(DESTDIR)$(INCLUDEPY)/cpython"; \
1554
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(INCLUDEPY)/cpython; \
1555
+ else true; \
1556
+ fi
1557
+ @if test ! -d $(DESTDIR)$(INCLUDEPY)/internal; then \
1558
+ echo "Creating directory $(DESTDIR)$(INCLUDEPY)/internal"; \
1559
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$(INCLUDEPY)/internal; \
1560
+ else true; \
1561
+ fi
1562
+ @for i in $(srcdir)/Include/*.h; \
1563
+ do \
1564
+ echo $(INSTALL_DATA) $$i $(INCLUDEPY); \
1565
+ $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY); \
1566
+ done
1567
+ @for i in $(srcdir)/Include/cpython/*.h; \
1568
+ do \
1569
+ echo $(INSTALL_DATA) $$i $(INCLUDEPY)/cpython; \
1570
+ $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY)/cpython; \
1571
+ done
1572
+ @for i in $(srcdir)/Include/internal/*.h; \
1573
+ do \
1574
+ echo $(INSTALL_DATA) $$i $(INCLUDEPY)/internal; \
1575
+ $(INSTALL_DATA) $$i $(DESTDIR)$(INCLUDEPY)/internal; \
1576
+ done
1577
+ $(INSTALL_DATA) pyconfig.h $(DESTDIR)$(CONFINCLUDEPY)/pyconfig.h
1578
+
1579
+ # Install the library and miscellaneous stuff needed for extending/embedding
1580
+ # This goes into $(exec_prefix)
1581
+ LIBPL= $(prefix)/lib/python3.8/config-$(VERSION)$(ABIFLAGS)-x86_64-linux-gnu
1582
+
1583
+ # pkgconfig directory
1584
+ LIBPC= $(LIBDIR)/pkgconfig
1585
+
1586
+ libainstall: build_all python-config
1587
+ @for i in $(LIBDIR) $(LIBPL) $(LIBPC); \
1588
+ do \
1589
+ if test ! -d $(DESTDIR)$$i; then \
1590
+ echo "Creating directory $$i"; \
1591
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
1592
+ else true; \
1593
+ fi; \
1594
+ done
1595
+ @if test -d $(LIBRARY); then :; else \
1596
+ if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
1597
+ if test "$(SHLIB_SUFFIX)" = .dll; then \
1598
+ $(INSTALL_DATA) $(LDLIBRARY) $(DESTDIR)$(LIBPL) ; \
1599
+ else \
1600
+ $(INSTALL_DATA) $(LIBRARY) $(DESTDIR)$(LIBPL)/$(LIBRARY) ; \
1601
+ fi; \
1602
+ else \
1603
+ echo Skip install of $(LIBRARY) - use make frameworkinstall; \
1604
+ fi; \
1605
+ fi
1606
+ $(INSTALL_DATA) Modules/config.c $(DESTDIR)$(LIBPL)/config.c
1607
+ $(INSTALL_DATA) Programs/python.o $(DESTDIR)$(LIBPL)/python.o
1608
+ $(INSTALL_DATA) $(srcdir)/Modules/config.c.in $(DESTDIR)$(LIBPL)/config.c.in
1609
+ $(INSTALL_DATA) Makefile $(DESTDIR)$(LIBPL)/Makefile
1610
+ $(INSTALL_DATA) $(srcdir)/Modules/Setup $(DESTDIR)$(LIBPL)/Setup
1611
+ $(INSTALL_DATA) Modules/Setup.local $(DESTDIR)$(LIBPL)/Setup.local
1612
+ $(INSTALL_DATA) Misc/python.pc $(DESTDIR)$(LIBPC)/python-$(VERSION).pc
1613
+ $(INSTALL_DATA) Misc/python-embed.pc $(DESTDIR)$(LIBPC)/python-$(VERSION)-embed.pc
1614
+ $(INSTALL_SCRIPT) $(srcdir)/Modules/makesetup $(DESTDIR)$(LIBPL)/makesetup
1615
+ $(INSTALL_SCRIPT) $(srcdir)/install-sh $(DESTDIR)$(LIBPL)/install-sh
1616
+ $(INSTALL_SCRIPT) python-config.py $(DESTDIR)$(LIBPL)/python-config.py
1617
+ $(INSTALL_SCRIPT) python-config $(DESTDIR)$(BINDIR)/python$(LDVERSION)-config
1618
+ @if [ -s Modules/python.exp -a \
1619
+ "`echo $(MACHDEP) | sed 's/^\(...\).*/\1/'`" = "aix" ]; then \
1620
+ echo; echo "Installing support files for building shared extension modules on AIX:"; \
1621
+ $(INSTALL_DATA) Modules/python.exp \
1622
+ $(DESTDIR)$(LIBPL)/python.exp; \
1623
+ echo; echo "$(LIBPL)/python.exp"; \
1624
+ $(INSTALL_SCRIPT) $(srcdir)/Modules/makexp_aix \
1625
+ $(DESTDIR)$(LIBPL)/makexp_aix; \
1626
+ echo "$(LIBPL)/makexp_aix"; \
1627
+ $(INSTALL_SCRIPT) Modules/ld_so_aix \
1628
+ $(DESTDIR)$(LIBPL)/ld_so_aix; \
1629
+ echo "$(LIBPL)/ld_so_aix"; \
1630
+ echo; echo "See Misc/AIX-NOTES for details."; \
1631
+ else true; \
1632
+ fi
1633
+
1634
+ # Install the dynamically loadable modules
1635
+ # This goes into $(exec_prefix)
1636
+ sharedinstall: sharedmods
1637
+ $(RUNSHARED) $(PY_BUILD_ENVIRON) $(PYTHON_FOR_BUILD) $(srcdir)/setup.py install \
1638
+ --prefix=$(prefix) \
1639
+ --install-scripts=$(BINDIR) \
1640
+ --install-platlib=$(DESTSHARED) \
1641
+ --root=$(DESTDIR)/
1642
+ -rm $(DESTDIR)$(DESTSHARED)/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py
1643
+ -rm -r $(DESTDIR)$(DESTSHARED)/__pycache__
1644
+
1645
+ # Here are a couple of targets for MacOSX again, to install a full
1646
+ # framework-based Python. frameworkinstall installs everything, the
1647
+ # subtargets install specific parts. Much of the actual work is offloaded to
1648
+ # the Makefile in Mac
1649
+ #
1650
+ #
1651
+ # This target is here for backward compatibility, previous versions of Python
1652
+ # hadn't integrated framework installation in the normal install process.
1653
+ frameworkinstall: install
1654
+
1655
+ # On install, we re-make the framework
1656
+ # structure in the install location, /Library/Frameworks/ or the argument to
1657
+ # --enable-framework. If --enable-framework has been specified then we have
1658
+ # automatically set prefix to the location deep down in the framework, so we
1659
+ # only have to cater for the structural bits of the framework.
1660
+
1661
+ frameworkinstallframework: frameworkinstallstructure install frameworkinstallmaclib
1662
+
1663
+ frameworkinstallstructure: $(LDLIBRARY)
1664
+ @if test "$(PYTHONFRAMEWORKDIR)" = no-framework; then \
1665
+ echo Not configured with --enable-framework; \
1666
+ exit 1; \
1667
+ else true; \
1668
+ fi
1669
+ @for i in $(prefix)/Resources/English.lproj $(prefix)/lib; do\
1670
+ if test ! -d $(DESTDIR)$$i; then \
1671
+ echo "Creating directory $(DESTDIR)$$i"; \
1672
+ $(INSTALL) -d -m $(DIRMODE) $(DESTDIR)$$i; \
1673
+ else true; \
1674
+ fi; \
1675
+ done
1676
+ $(LN) -fsn include/python$(LDVERSION) $(DESTDIR)$(prefix)/Headers
1677
+ sed 's/%VERSION%/'"`$(RUNSHARED) ./$(BUILDPYTHON) -c 'import platform; print(platform.python_version())'`"'/g' < $(RESSRCDIR)/Info.plist > $(DESTDIR)$(prefix)/Resources/Info.plist
1678
+ $(LN) -fsn $(VERSION) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Versions/Current
1679
+ $(LN) -fsn Versions/Current/$(PYTHONFRAMEWORK) $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/$(PYTHONFRAMEWORK)
1680
+ $(LN) -fsn Versions/Current/Headers $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Headers
1681
+ $(LN) -fsn Versions/Current/Resources $(DESTDIR)$(PYTHONFRAMEWORKINSTALLDIR)/Resources
1682
+ $(INSTALL_SHARED) $(LDLIBRARY) $(DESTDIR)$(PYTHONFRAMEWORKPREFIX)/$(LDLIBRARY)
1683
+
1684
+ # This installs Mac/Lib into the framework
1685
+ # Install a number of symlinks to keep software that expects a normal unix
1686
+ # install (which includes python-config) happy.
1687
+ frameworkinstallmaclib:
1688
+ $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).a"
1689
+ $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(LDVERSION).dylib"
1690
+ $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).a"
1691
+ $(LN) -fs "../../../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(LIBPL)/libpython$(VERSION).dylib"
1692
+ $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(LDVERSION).dylib"
1693
+ $(LN) -fs "../$(PYTHONFRAMEWORK)" "$(DESTDIR)$(prefix)/lib/libpython$(VERSION).dylib"
1694
+
1695
+ # This installs the IDE, the Launcher and other apps into /Applications
1696
+ frameworkinstallapps:
1697
+ cd Mac && $(MAKE) installapps DESTDIR="$(DESTDIR)"
1698
+
1699
+ # Build the bootstrap executable that will spawn the interpreter inside
1700
+ # an app bundle within the framework. This allows the interpreter to
1701
+ # run OS X GUI APIs.
1702
+ frameworkpythonw:
1703
+ cd Mac && $(MAKE) pythonw
1704
+
1705
+ # This installs the python* and other bin symlinks in $prefix/bin or in
1706
+ # a bin directory relative to the framework root
1707
+ frameworkinstallunixtools:
1708
+ cd Mac && $(MAKE) installunixtools DESTDIR="$(DESTDIR)"
1709
+
1710
+ frameworkaltinstallunixtools:
1711
+ cd Mac && $(MAKE) altinstallunixtools DESTDIR="$(DESTDIR)"
1712
+
1713
+ # This installs the Tools into the applications directory.
1714
+ # It is not part of a normal frameworkinstall
1715
+ frameworkinstallextras:
1716
+ cd Mac && $(MAKE) installextras DESTDIR="$(DESTDIR)"
1717
+
1718
+ # Build the toplevel Makefile
1719
+ Makefile.pre: $(srcdir)/Makefile.pre.in config.status
1720
+ CONFIG_FILES=Makefile.pre CONFIG_HEADERS= $(SHELL) config.status
1721
+ $(MAKE) -f Makefile.pre Makefile
1722
+
1723
+ # Run the configure script.
1724
+ config.status: $(srcdir)/configure
1725
+ $(SHELL) $(srcdir)/configure $(CONFIG_ARGS)
1726
+
1727
+ .PRECIOUS: config.status $(BUILDPYTHON) Makefile Makefile.pre
1728
+
1729
+ # Some make's put the object file in the current directory
1730
+ .c.o:
1731
+ $(CC) -c $(PY_CORE_CFLAGS) -o $@ $<
1732
+
1733
+ # bpo-30104: dtoa.c uses union to cast double to unsigned long[2]. clang 4.0
1734
+ # with -O2 or higher and strict aliasing miscompiles the ratio() function
1735
+ # causing rounding issues. Compile dtoa.c using -fno-strict-aliasing on clang.
1736
+ # https://bugs.llvm.org//show_bug.cgi?id=31928
1737
+ Python/dtoa.o: Python/dtoa.c
1738
+ $(CC) -c $(PY_CORE_CFLAGS) $(CFLAGS_ALIASING) -o $@ $<
1739
+
1740
+ # Run reindent on the library
1741
+ reindent:
1742
+ ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/reindent.py -r $(srcdir)/Lib
1743
+
1744
+ # Rerun configure with the same options as it was run last time,
1745
+ # provided the config.status script exists
1746
+ recheck:
1747
+ $(SHELL) config.status --recheck
1748
+ $(SHELL) config.status
1749
+
1750
+ # Regenerate configure and pyconfig.h.in
1751
+ .PHONY: autoconf
1752
+ autoconf:
1753
+ # Regenerate the configure script from configure.ac using autoconf
1754
+ (cd $(srcdir); autoconf -Wall)
1755
+ # Regenerate pyconfig.h.in from configure.ac using autoheader
1756
+ (cd $(srcdir); autoheader -Wall)
1757
+
1758
+ # Create a tags file for vi
1759
+ tags::
1760
+ ctags -w $(srcdir)/Include/*.h $(srcdir)/Include/cpython/*.h $(srcdir)/Include/internal/*.h
1761
+ for i in $(SRCDIRS); do ctags -f tags -w -a $(srcdir)/$$i/*.[ch]; done
1762
+ ctags -f tags -w -a $(srcdir)/Modules/_ctypes/*.[ch]
1763
+ find $(srcdir)/Lib -type f -name "*.py" -not -name "test_*.py" -not -path "*/test/*" -not -path "*/tests/*" -not -path "*/*_test/*" | ctags -f tags -w -a -L -
1764
+ LC_ALL=C sort -o tags tags
1765
+
1766
+ # Create a tags file for GNU Emacs
1767
+ TAGS::
1768
+ cd $(srcdir); \
1769
+ etags Include/*.h Include/cpython/*.h Include/internal/*.h; \
1770
+ for i in $(SRCDIRS); do etags -a $$i/*.[ch]; done
1771
+ etags -a $(srcdir)/Modules/_ctypes/*.[ch]
1772
+ find $(srcdir)/Lib -type f -name "*.py" -not -name "test_*.py" -not -path "*/test/*" -not -path "*/tests/*" -not -path "*/*_test/*" | etags - -a
1773
+
1774
+ # Sanitation targets -- clean leaves libraries, executables and tags
1775
+ # files, which clobber removes as well
1776
+ pycremoval:
1777
+ -find $(srcdir) -depth -name '__pycache__' -exec rm -rf {} ';'
1778
+ -find $(srcdir) -name '*.py[co]' -exec rm -f {} ';'
1779
+
1780
+ rmtestturds:
1781
+ -rm -f *BAD *GOOD *SKIPPED
1782
+ -rm -rf OUT
1783
+ -rm -f *.TXT
1784
+ -rm -f *.txt
1785
+ -rm -f gb-18030-2000.xml
1786
+
1787
+ docclean:
1788
+ -rm -rf Doc/build
1789
+ -rm -rf Doc/tools/sphinx Doc/tools/pygments Doc/tools/docutils
1790
+
1791
+ clean: pycremoval
1792
+ find . -name '*.[oa]' -exec rm -f {} ';'
1793
+ find . -name '*.s[ol]' -exec rm -f {} ';'
1794
+ find . -name '*.so.[0-9]*.[0-9]*' -exec rm -f {} ';'
1795
+ find build -name 'fficonfig.h' -exec rm -f {} ';' || true
1796
+ find build -name '*.py' -exec rm -f {} ';' || true
1797
+ find build -name '*.py[co]' -exec rm -f {} ';' || true
1798
+ -rm -f pybuilddir.txt
1799
+ -rm -f Lib/lib2to3/*Grammar*.pickle
1800
+ -rm -f Programs/_testembed Programs/_freeze_importlib
1801
+ -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
1802
+ -rm -f Include/pydtrace_probes.h
1803
+ -rm -f profile-gen-stamp
1804
+
1805
+ profile-removal:
1806
+ find . -name '*.gc??' -exec rm -f {} ';'
1807
+ find . -name '*.profclang?' -exec rm -f {} ';'
1808
+ find . -name '*.dyn' -exec rm -f {} ';'
1809
+ rm -f $(COVERAGE_INFO)
1810
+ rm -rf $(COVERAGE_REPORT)
1811
+ rm -f profile-run-stamp
1812
+
1813
+ clobber: clean profile-removal
1814
+ -rm -f $(BUILDPYTHON) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
1815
+ tags TAGS \
1816
+ config.cache config.log pyconfig.h Modules/config.c
1817
+ -rm -rf build platform
1818
+ -rm -rf $(PYTHONFRAMEWORKDIR)
1819
+ -rm -f python-config.py python-config
1820
+ -rm -f profile-gen-stamp profile-clean-stamp
1821
+
1822
+ # Make things extra clean, before making a distribution:
1823
+ # remove all generated files, even Makefile[.pre]
1824
+ # Keep configure and Python-ast.[ch], it's possible they can't be generated
1825
+ distclean: clobber
1826
+ for file in $(srcdir)/Lib/test/data/* ; do \
1827
+ if test "$$file" != "$(srcdir)/Lib/test/data/README"; then rm "$$file"; fi; \
1828
+ done
1829
+ -rm -f core Makefile Makefile.pre config.status Modules/Setup.local \
1830
+ Modules/ld_so_aix Modules/python.exp Misc/python.pc \
1831
+ Misc/python-embed.pc Misc/python-config.sh
1832
+ -rm -f python*-gdb.py
1833
+ # Issue #28258: set LC_ALL to avoid issues with Estonian locale.
1834
+ # Expansion is performed here by shell (spawned by make) itself before
1835
+ # arguments are passed to find. So LC_ALL=C must be set as a separate
1836
+ # command.
1837
+ LC_ALL=C; find $(srcdir)/[a-zA-Z]* '(' -name '*.fdc' -o -name '*~' \
1838
+ -o -name '[@,#]*' -o -name '*.old' \
1839
+ -o -name '*.orig' -o -name '*.rej' \
1840
+ -o -name '*.bak' ')' \
1841
+ -exec rm -f {} ';'
1842
+
1843
+ # Check that all symbols exported by libpython start with "Py" or "_Py"
1844
+ smelly: build_all
1845
+ $(RUNSHARED) ./$(BUILDPYTHON) Tools/scripts/smelly.py
1846
+
1847
+ # Find files with funny names
1848
+ funny:
1849
+ find $(SUBDIRS) $(SUBDIRSTOO) \
1850
+ -type d \
1851
+ -o -name '*.[chs]' \
1852
+ -o -name '*.py' \
1853
+ -o -name '*.pyw' \
1854
+ -o -name '*.dat' \
1855
+ -o -name '*.el' \
1856
+ -o -name '*.fd' \
1857
+ -o -name '*.in' \
1858
+ -o -name '*.gif' \
1859
+ -o -name '*.txt' \
1860
+ -o -name '*.xml' \
1861
+ -o -name '*.xbm' \
1862
+ -o -name '*.xpm' \
1863
+ -o -name '*.uue' \
1864
+ -o -name '*.decTest' \
1865
+ -o -name '*.tmCommand' \
1866
+ -o -name '*.tmSnippet' \
1867
+ -o -name 'Setup' \
1868
+ -o -name 'Setup.*' \
1869
+ -o -name README \
1870
+ -o -name NEWS \
1871
+ -o -name HISTORY \
1872
+ -o -name Makefile \
1873
+ -o -name ChangeLog \
1874
+ -o -name .hgignore \
1875
+ -o -name MANIFEST \
1876
+ -o -print
1877
+
1878
+ # Perform some verification checks on any modified files.
1879
+ patchcheck: build_all
1880
+ $(RUNSHARED) ./$(BUILDPYTHON) $(srcdir)/Tools/scripts/patchcheck.py
1881
+
1882
+ # Dependencies
1883
+
1884
+ Python/thread.o: $(srcdir)/Python/thread_nt.h $(srcdir)/Python/thread_pthread.h $(srcdir)/Python/condvar.h
1885
+
1886
+ # Declare targets that aren't real files
1887
+ .PHONY: all build_all sharedmods check-clean-src oldsharedmods test quicktest
1888
+ .PHONY: install altinstall oldsharedinstall bininstall altbininstall
1889
+ .PHONY: maninstall libinstall inclinstall libainstall sharedinstall
1890
+ .PHONY: frameworkinstall frameworkinstallframework frameworkinstallstructure
1891
+ .PHONY: frameworkinstallmaclib frameworkinstallapps frameworkinstallunixtools
1892
+ .PHONY: frameworkaltinstallunixtools recheck clean clobber distclean
1893
+ .PHONY: smelly funny patchcheck touch altmaninstall commoninstall
1894
+ .PHONY: gdbhooks
1895
+
1896
+ # IF YOU PUT ANYTHING HERE IT WILL GO AWAY
1897
+ # Local Variables:
1898
+ # mode: makefile
1899
+ # End:
1900
+
1901
+ # Rules appended by makesetup
1902
+
1903
+ Modules/posixmodule.o: $(srcdir)/Modules/posixmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/posixmodule.c -o Modules/posixmodule.o
1904
+ Modules/posix$(EXT_SUFFIX): Modules/posixmodule.o; $(BLDSHARED) Modules/posixmodule.o -o Modules/posix$(EXT_SUFFIX)
1905
+ Modules/errnomodule.o: $(srcdir)/Modules/errnomodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/errnomodule.c -o Modules/errnomodule.o
1906
+ Modules/errno$(EXT_SUFFIX): Modules/errnomodule.o; $(BLDSHARED) Modules/errnomodule.o -o Modules/errno$(EXT_SUFFIX)
1907
+ Modules/pwdmodule.o: $(srcdir)/Modules/pwdmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/pwdmodule.c -o Modules/pwdmodule.o
1908
+ Modules/pwd$(EXT_SUFFIX): Modules/pwdmodule.o; $(BLDSHARED) Modules/pwdmodule.o -o Modules/pwd$(EXT_SUFFIX)
1909
+ Modules/_sre.o: $(srcdir)/Modules/_sre.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_sre.c -o Modules/_sre.o
1910
+ Modules/_sre$(EXT_SUFFIX): Modules/_sre.o; $(BLDSHARED) Modules/_sre.o -o Modules/_sre$(EXT_SUFFIX)
1911
+ Modules/_codecsmodule.o: $(srcdir)/Modules/_codecsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_codecsmodule.c -o Modules/_codecsmodule.o
1912
+ Modules/_codecs$(EXT_SUFFIX): Modules/_codecsmodule.o; $(BLDSHARED) Modules/_codecsmodule.o -o Modules/_codecs$(EXT_SUFFIX)
1913
+ Modules/_weakref.o: $(srcdir)/Modules/_weakref.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_weakref.c -o Modules/_weakref.o
1914
+ Modules/_weakref$(EXT_SUFFIX): Modules/_weakref.o; $(BLDSHARED) Modules/_weakref.o -o Modules/_weakref$(EXT_SUFFIX)
1915
+ Modules/_functoolsmodule.o: $(srcdir)/Modules/_functoolsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/_functoolsmodule.c -o Modules/_functoolsmodule.o
1916
+ Modules/_functools$(EXT_SUFFIX): Modules/_functoolsmodule.o; $(BLDSHARED) Modules/_functoolsmodule.o -o Modules/_functools$(EXT_SUFFIX)
1917
+ Modules/_operator.o: $(srcdir)/Modules/_operator.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_operator.c -o Modules/_operator.o
1918
+ Modules/_operator$(EXT_SUFFIX): Modules/_operator.o; $(BLDSHARED) Modules/_operator.o -o Modules/_operator$(EXT_SUFFIX)
1919
+ Modules/_collectionsmodule.o: $(srcdir)/Modules/_collectionsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_collectionsmodule.c -o Modules/_collectionsmodule.o
1920
+ Modules/_collections$(EXT_SUFFIX): Modules/_collectionsmodule.o; $(BLDSHARED) Modules/_collectionsmodule.o -o Modules/_collections$(EXT_SUFFIX)
1921
+ Modules/_abc.o: $(srcdir)/Modules/_abc.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_abc.c -o Modules/_abc.o
1922
+ Modules/_abc$(EXT_SUFFIX): Modules/_abc.o; $(BLDSHARED) Modules/_abc.o -o Modules/_abc$(EXT_SUFFIX)
1923
+ Modules/itertoolsmodule.o: $(srcdir)/Modules/itertoolsmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/itertoolsmodule.c -o Modules/itertoolsmodule.o
1924
+ Modules/itertools$(EXT_SUFFIX): Modules/itertoolsmodule.o; $(BLDSHARED) Modules/itertoolsmodule.o -o Modules/itertools$(EXT_SUFFIX)
1925
+ Modules/atexitmodule.o: $(srcdir)/Modules/atexitmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/atexitmodule.c -o Modules/atexitmodule.o
1926
+ Modules/atexit$(EXT_SUFFIX): Modules/atexitmodule.o; $(BLDSHARED) Modules/atexitmodule.o -o Modules/atexit$(EXT_SUFFIX)
1927
+ Modules/signalmodule.o: $(srcdir)/Modules/signalmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/signalmodule.c -o Modules/signalmodule.o
1928
+ Modules/_signal$(EXT_SUFFIX): Modules/signalmodule.o; $(BLDSHARED) Modules/signalmodule.o -o Modules/_signal$(EXT_SUFFIX)
1929
+ Modules/_stat.o: $(srcdir)/Modules/_stat.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_stat.c -o Modules/_stat.o
1930
+ Modules/_stat$(EXT_SUFFIX): Modules/_stat.o; $(BLDSHARED) Modules/_stat.o -o Modules/_stat$(EXT_SUFFIX)
1931
+ Modules/timemodule.o: $(srcdir)/Modules/timemodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/timemodule.c -o Modules/timemodule.o
1932
+ Modules/time$(EXT_SUFFIX): Modules/timemodule.o; $(BLDSHARED) Modules/timemodule.o -o Modules/time$(EXT_SUFFIX)
1933
+ Modules/_threadmodule.o: $(srcdir)/Modules/_threadmodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -c $(srcdir)/Modules/_threadmodule.c -o Modules/_threadmodule.o
1934
+ Modules/_thread$(EXT_SUFFIX): Modules/_threadmodule.o; $(BLDSHARED) Modules/_threadmodule.o -o Modules/_thread$(EXT_SUFFIX)
1935
+ Modules/_localemodule.o: $(srcdir)/Modules/_localemodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -c $(srcdir)/Modules/_localemodule.c -o Modules/_localemodule.o
1936
+ Modules/_locale$(EXT_SUFFIX): Modules/_localemodule.o; $(BLDSHARED) Modules/_localemodule.o -o Modules/_locale$(EXT_SUFFIX)
1937
+ Modules/_iomodule.o: $(srcdir)/Modules/_io/_iomodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/_iomodule.c -o Modules/_iomodule.o
1938
+ Modules/iobase.o: $(srcdir)/Modules/_io/iobase.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/iobase.c -o Modules/iobase.o
1939
+ Modules/fileio.o: $(srcdir)/Modules/_io/fileio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/fileio.c -o Modules/fileio.o
1940
+ Modules/bytesio.o: $(srcdir)/Modules/_io/bytesio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bytesio.c -o Modules/bytesio.o
1941
+ Modules/bufferedio.o: $(srcdir)/Modules/_io/bufferedio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/bufferedio.c -o Modules/bufferedio.o
1942
+ Modules/textio.o: $(srcdir)/Modules/_io/textio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/textio.c -o Modules/textio.o
1943
+ Modules/stringio.o: $(srcdir)/Modules/_io/stringio.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io -c $(srcdir)/Modules/_io/stringio.c -o Modules/stringio.o
1944
+ Modules/_io$(EXT_SUFFIX): Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o; $(BLDSHARED) Modules/_iomodule.o Modules/iobase.o Modules/fileio.o Modules/bytesio.o Modules/bufferedio.o Modules/textio.o Modules/stringio.o -o Modules/_io$(EXT_SUFFIX)
1945
+ Modules/faulthandler.o: $(srcdir)/Modules/faulthandler.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/faulthandler.c -o Modules/faulthandler.o
1946
+ Modules/faulthandler$(EXT_SUFFIX): Modules/faulthandler.o; $(BLDSHARED) Modules/faulthandler.o -o Modules/faulthandler$(EXT_SUFFIX)
1947
+ Modules/_tracemalloc.o: $(srcdir)/Modules/_tracemalloc.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/_tracemalloc.c -o Modules/_tracemalloc.o
1948
+ Modules/hashtable.o: $(srcdir)/Modules/hashtable.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/hashtable.c -o Modules/hashtable.o
1949
+ Modules/_tracemalloc$(EXT_SUFFIX): Modules/_tracemalloc.o Modules/hashtable.o; $(BLDSHARED) Modules/_tracemalloc.o Modules/hashtable.o -o Modules/_tracemalloc$(EXT_SUFFIX)
1950
+ Modules/symtablemodule.o: $(srcdir)/Modules/symtablemodule.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/symtablemodule.c -o Modules/symtablemodule.o
1951
+ Modules/_symtable$(EXT_SUFFIX): Modules/symtablemodule.o; $(BLDSHARED) Modules/symtablemodule.o -o Modules/_symtable$(EXT_SUFFIX)
1952
+ Modules/xxsubtype.o: $(srcdir)/Modules/xxsubtype.c; $(CC) $(PY_BUILTIN_MODULE_CFLAGS) -c $(srcdir)/Modules/xxsubtype.c -o Modules/xxsubtype.o
1953
+ Modules/xxsubtype$(EXT_SUFFIX): Modules/xxsubtype.o; $(BLDSHARED) Modules/xxsubtype.o -o Modules/xxsubtype$(EXT_SUFFIX)
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup ADDED
@@ -0,0 +1,368 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- makefile -*-
2
+ # The file Setup is used by the makesetup script to construct the files
3
+ # Makefile and config.c, from Makefile.pre and config.c.in,
4
+ # respectively. Note that Makefile.pre is created from Makefile.pre.in
5
+ # by the toplevel configure script.
6
+
7
+ # (VPATH notes: Setup and Makefile.pre are in the build directory, as
8
+ # are Makefile and config.c; the *.in files are in the source directory.)
9
+
10
+ # Each line in this file describes one or more optional modules.
11
+ # Modules configured here will not be compiled by the setup.py script,
12
+ # so the file can be used to override setup.py's behavior.
13
+ # Tag lines containing just the word "*static*", "*shared*" or "*disabled*"
14
+ # (without the quotes but with the stars) are used to tag the following module
15
+ # descriptions. Tag lines may alternate throughout this file. Modules are
16
+ # built statically when they are preceded by a "*static*" tag line or when
17
+ # there is no tag line between the start of the file and the module
18
+ # description. Modules are built as a shared library when they are preceded by
19
+ # a "*shared*" tag line. Modules are not built at all, not by the Makefile,
20
+ # nor by the setup.py script, when they are preceded by a "*disabled*" tag
21
+ # line.
22
+
23
+ # Lines have the following structure:
24
+ #
25
+ # <module> ... [<sourcefile> ...] [<cpparg> ...] [<library> ...]
26
+ #
27
+ # <sourcefile> is anything ending in .c (.C, .cc, .c++ are C++ files)
28
+ # <cpparg> is anything starting with -I, -D, -U or -C
29
+ # <library> is anything ending in .a or beginning with -l or -L
30
+ # <module> is anything else but should be a valid Python
31
+ # identifier (letters, digits, underscores, beginning with non-digit)
32
+ #
33
+ # (As the makesetup script changes, it may recognize some other
34
+ # arguments as well, e.g. *.so and *.sl as libraries. See the big
35
+ # case statement in the makesetup script.)
36
+ #
37
+ # Lines can also have the form
38
+ #
39
+ # <name> = <value>
40
+ #
41
+ # which defines a Make variable definition inserted into Makefile.in
42
+ #
43
+ # The build process works like this:
44
+ #
45
+ # 1. Build all modules that are declared as static in Modules/Setup,
46
+ # combine them into libpythonxy.a, combine that into python.
47
+ # 2. Build all modules that are listed as shared in Modules/Setup.
48
+ # 3. Invoke setup.py. That builds all modules that
49
+ # a) are not builtin, and
50
+ # b) are not listed in Modules/Setup, and
51
+ # c) can be build on the target
52
+ #
53
+ # Therefore, modules declared to be shared will not be
54
+ # included in the config.c file, nor in the list of objects to be
55
+ # added to the library archive, and their linker options won't be
56
+ # added to the linker options. Rules to create their .o files and
57
+ # their shared libraries will still be added to the Makefile, and
58
+ # their names will be collected in the Make variable SHAREDMODS. This
59
+ # is used to build modules as shared libraries. (They can be
60
+ # installed using "make sharedinstall", which is implied by the
61
+ # toplevel "make install" target.) (For compatibility,
62
+ # *noconfig* has the same effect as *shared*.)
63
+ #
64
+ # NOTE: As a standard policy, as many modules as can be supported by a
65
+ # platform should be present. The distribution comes with all modules
66
+ # enabled that are supported by most platforms and don't require you
67
+ # to ftp sources from elsewhere.
68
+
69
+
70
+ # Some special rules to define PYTHONPATH.
71
+ # Edit the definitions below to indicate which options you are using.
72
+ # Don't add any whitespace or comments!
73
+
74
+ # Directories where library files get installed.
75
+ # DESTLIB is for Python modules; MACHDESTLIB for shared libraries.
76
+ DESTLIB=$(LIBDEST)
77
+ MACHDESTLIB=$(BINLIBDEST)
78
+
79
+ # NOTE: all the paths are now relative to the prefix that is computed
80
+ # at run time!
81
+
82
+ # Standard path -- don't edit.
83
+ # No leading colon since this is the first entry.
84
+ # Empty since this is now just the runtime prefix.
85
+ DESTPATH=
86
+
87
+ # Site specific path components -- should begin with : if non-empty
88
+ SITEPATH=
89
+
90
+ # Standard path components for test modules
91
+ TESTPATH=
92
+
93
+ COREPYTHONPATH=$(DESTPATH)$(SITEPATH)$(TESTPATH)
94
+ PYTHONPATH=$(COREPYTHONPATH)
95
+
96
+
97
+ # The modules listed here can't be built as shared libraries for
98
+ # various reasons; therefore they are listed here instead of in the
99
+ # normal order.
100
+
101
+ # This only contains the minimal set of modules required to run the
102
+ # setup.py script in the root of the Python source tree.
103
+
104
+ posix -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal posixmodule.c # posix (UNIX) system calls
105
+ errno errnomodule.c # posix (UNIX) errno values
106
+ pwd pwdmodule.c # this is needed to find out the user's home dir
107
+ # if $HOME is not set
108
+ _sre _sre.c # Fredrik Lundh's new regular expressions
109
+ _codecs _codecsmodule.c # access to the builtin codecs and codec registry
110
+ _weakref _weakref.c # weak references
111
+ _functools -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _functoolsmodule.c # Tools for working with functions and callable objects
112
+ _operator _operator.c # operator.add() and similar goodies
113
+ _collections _collectionsmodule.c # Container types
114
+ _abc _abc.c # Abstract base classes
115
+ itertools itertoolsmodule.c # Functions creating iterators for efficient looping
116
+ atexit atexitmodule.c # Register functions to be run at interpreter-shutdown
117
+ _signal -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal signalmodule.c
118
+ _stat _stat.c # stat.h interface
119
+ time -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal timemodule.c # -lm # time operations and variables
120
+ _thread -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal _threadmodule.c # low-level threading interface
121
+
122
+ # access to ISO C locale support
123
+ _locale -DPy_BUILD_CORE_BUILTIN _localemodule.c # -lintl
124
+
125
+ # Standard I/O baseline
126
+ _io -DPy_BUILD_CORE_BUILTIN -I$(srcdir)/Include/internal -I$(srcdir)/Modules/_io _io/_iomodule.c _io/iobase.c _io/fileio.c _io/bytesio.c _io/bufferedio.c _io/textio.c _io/stringio.c
127
+
128
+ # faulthandler module
129
+ faulthandler faulthandler.c
130
+
131
+ # debug tool to trace memory blocks allocated by Python
132
+ #
133
+ # bpo-35053: The module must be builtin since _Py_NewReference()
134
+ # can call _PyTraceMalloc_NewReference().
135
+ _tracemalloc _tracemalloc.c hashtable.c
136
+
137
+ # The rest of the modules listed in this file are all commented out by
138
+ # default. Usually they can be detected and built as dynamically
139
+ # loaded modules by the new setup.py script added in Python 2.1. If
140
+ # you're on a platform that doesn't support dynamic loading, want to
141
+ # compile modules statically into the Python binary, or need to
142
+ # specify some odd set of compiler switches, you can uncomment the
143
+ # appropriate lines below.
144
+
145
+ # ======================================================================
146
+
147
+ # The Python symtable module depends on .h files that setup.py doesn't track
148
+ _symtable symtablemodule.c
149
+
150
+ # Uncommenting the following line tells makesetup that all following
151
+ # modules are to be built as shared libraries (see above for more
152
+ # detail; also note that *static* or *disabled* cancels this effect):
153
+
154
+ #*shared*
155
+
156
+ # GNU readline. Unlike previous Python incarnations, GNU readline is
157
+ # now incorporated in an optional module, configured in the Setup file
158
+ # instead of by a configure script switch. You may have to insert a
159
+ # -L option pointing to the directory where libreadline.* lives,
160
+ # and you may have to change -ltermcap to -ltermlib or perhaps remove
161
+ # it, depending on your system -- see the GNU readline instructions.
162
+ # It's okay for this to be a shared library, too.
163
+
164
+ #readline readline.c -lreadline -ltermcap
165
+
166
+
167
+ # Modules that should always be present (non UNIX dependent):
168
+
169
+ #array arraymodule.c # array objects
170
+ #cmath cmathmodule.c _math.c # -lm # complex math library functions
171
+ #math mathmodule.c _math.c # -lm # math library functions, e.g. sin()
172
+ #_contextvars _contextvarsmodule.c # Context Variables
173
+ #_struct _struct.c # binary structure packing/unpacking
174
+ #_weakref _weakref.c # basic weak reference support
175
+ #_testcapi _testcapimodule.c # Python C API test module
176
+ #_testinternalcapi _testinternalcapi.c -I$(srcdir)/Include/internal -DPy_BUILD_CORE_MODULE # Python internal C API test module
177
+ #_random _randommodule.c # Random number generator
178
+ #_elementtree -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DUSE_PYEXPAT_CAPI _elementtree.c # elementtree accelerator
179
+ #_pickle _pickle.c # pickle accelerator
180
+ #_datetime _datetimemodule.c # datetime accelerator
181
+ #_bisect _bisectmodule.c # Bisection algorithms
182
+ #_heapq _heapqmodule.c # Heap queue algorithm
183
+ #_asyncio _asynciomodule.c # Fast asyncio Future
184
+ #_json -I$(srcdir)/Include/internal -DPy_BUILD_CORE_BUILTIN _json.c # _json speedups
185
+ #_statistics _statisticsmodule.c # statistics accelerator
186
+
187
+ #unicodedata unicodedata.c # static Unicode character database
188
+
189
+
190
+ # Modules with some UNIX dependencies -- on by default:
191
+ # (If you have a really backward UNIX, select and socket may not be
192
+ # supported...)
193
+
194
+ #fcntl fcntlmodule.c # fcntl(2) and ioctl(2)
195
+ #spwd spwdmodule.c # spwd(3)
196
+ #grp grpmodule.c # grp(3)
197
+ #select selectmodule.c # select(2); not on ancient System V
198
+
199
+ # Memory-mapped files (also works on Win32).
200
+ #mmap mmapmodule.c
201
+
202
+ # CSV file helper
203
+ #_csv _csv.c
204
+
205
+ # Socket module helper for socket(2)
206
+ #_socket socketmodule.c
207
+
208
+ # Socket module helper for SSL support; you must comment out the other
209
+ # socket line above, and possibly edit the SSL variable:
210
+ #SSL=/usr/local/ssl
211
+ #_ssl _ssl.c \
212
+ # -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
213
+ # -L$(SSL)/lib -lssl -lcrypto
214
+
215
+ # The crypt module is now disabled by default because it breaks builds
216
+ # on many systems (where -lcrypt is needed), e.g. Linux (I believe).
217
+
218
+ #_crypt _cryptmodule.c # -lcrypt # crypt(3); needs -lcrypt on some systems
219
+
220
+
221
+ # Some more UNIX dependent modules -- off by default, since these
222
+ # are not supported by all UNIX systems:
223
+
224
+ #nis nismodule.c -lnsl # Sun yellow pages -- not everywhere
225
+ #termios termios.c # Steen Lumholt's termios module
226
+ #resource resource.c # Jeremy Hylton's rlimit interface
227
+
228
+ #_posixsubprocess _posixsubprocess.c # POSIX subprocess module helper
229
+
230
+ # Multimedia modules -- off by default.
231
+ # These don't work for 64-bit platforms!!!
232
+ # #993173 says audioop works on 64-bit platforms, though.
233
+ # These represent audio samples or images as strings:
234
+
235
+ #audioop audioop.c # Operations on audio samples
236
+
237
+
238
+ # Note that the _md5 and _sha modules are normally only built if the
239
+ # system does not have the OpenSSL libs containing an optimized version.
240
+
241
+ # The _md5 module implements the RSA Data Security, Inc. MD5
242
+ # Message-Digest Algorithm, described in RFC 1321.
243
+
244
+ #_md5 md5module.c
245
+
246
+
247
+ # The _sha module implements the SHA checksum algorithms.
248
+ # (NIST's Secure Hash Algorithms.)
249
+ #_sha1 sha1module.c
250
+ #_sha256 sha256module.c
251
+ #_sha512 sha512module.c
252
+ #_sha3 _sha3/sha3module.c
253
+
254
+ # _blake module
255
+ #_blake2 _blake2/blake2module.c _blake2/blake2b_impl.c _blake2/blake2s_impl.c
256
+
257
+ # The _tkinter module.
258
+ #
259
+ # The command for _tkinter is long and site specific. Please
260
+ # uncomment and/or edit those parts as indicated. If you don't have a
261
+ # specific extension (e.g. Tix or BLT), leave the corresponding line
262
+ # commented out. (Leave the trailing backslashes in! If you
263
+ # experience strange errors, you may want to join all uncommented
264
+ # lines and remove the backslashes -- the backslash interpretation is
265
+ # done by the shell's "read" command and it may not be implemented on
266
+ # every system.
267
+
268
+ # *** Always uncomment this (leave the leading underscore in!):
269
+ # _tkinter _tkinter.c tkappinit.c -DWITH_APPINIT \
270
+ # *** Uncomment and edit to reflect where your Tcl/Tk libraries are:
271
+ # -L/usr/local/lib \
272
+ # *** Uncomment and edit to reflect where your Tcl/Tk headers are:
273
+ # -I/usr/local/include \
274
+ # *** Uncomment and edit to reflect where your X11 header files are:
275
+ # -I/usr/X11R6/include \
276
+ # *** Or uncomment this for Solaris:
277
+ # -I/usr/openwin/include \
278
+ # *** Uncomment and edit for Tix extension only:
279
+ # -DWITH_TIX -ltix8.1.8.2 \
280
+ # *** Uncomment and edit for BLT extension only:
281
+ # -DWITH_BLT -I/usr/local/blt/blt8.0-unoff/include -lBLT8.0 \
282
+ # *** Uncomment and edit for PIL (TkImaging) extension only:
283
+ # (See http://www.pythonware.com/products/pil/ for more info)
284
+ # -DWITH_PIL -I../Extensions/Imaging/libImaging tkImaging.c \
285
+ # *** Uncomment and edit for TOGL extension only:
286
+ # -DWITH_TOGL togl.c \
287
+ # *** Uncomment and edit to reflect your Tcl/Tk versions:
288
+ # -ltk8.2 -ltcl8.2 \
289
+ # *** Uncomment and edit to reflect where your X11 libraries are:
290
+ # -L/usr/X11R6/lib \
291
+ # *** Or uncomment this for Solaris:
292
+ # -L/usr/openwin/lib \
293
+ # *** Uncomment these for TOGL extension only:
294
+ # -lGL -lGLU -lXext -lXmu \
295
+ # *** Uncomment for AIX:
296
+ # -lld \
297
+ # *** Always uncomment this; X11 libraries to link with:
298
+ # -lX11
299
+
300
+ # Lance Ellinghaus's syslog module
301
+ #syslog syslogmodule.c # syslog daemon interface
302
+
303
+
304
+ # Curses support, requiring the System V version of curses, often
305
+ # provided by the ncurses library. e.g. on Linux, link with -lncurses
306
+ # instead of -lcurses).
307
+
308
+ #_curses _cursesmodule.c -lcurses -ltermcap
309
+ # Wrapper for the panel library that's part of ncurses and SYSV curses.
310
+ #_curses_panel _curses_panel.c -lpanel -lncurses
311
+
312
+
313
+ # Modules that provide persistent dictionary-like semantics. You will
314
+ # probably want to arrange for at least one of them to be available on
315
+ # your machine, though none are defined by default because of library
316
+ # dependencies. The Python module dbm/__init__.py provides an
317
+ # implementation independent wrapper for these; dbm/dumb.py provides
318
+ # similar functionality (but slower of course) implemented in Python.
319
+
320
+ #_dbm _dbmmodule.c # dbm(3) may require -lndbm or similar
321
+
322
+ # Anthony Baxter's gdbm module. GNU dbm(3) will require -lgdbm:
323
+
324
+ #_gdbm _gdbmmodule.c -I/usr/local/include -L/usr/local/lib -lgdbm
325
+
326
+
327
+ # Helper module for various ascii-encoders
328
+ #binascii binascii.c
329
+
330
+ # Fred Drake's interface to the Python parser
331
+ #parser parsermodule.c
332
+
333
+
334
+ # Andrew Kuchling's zlib module.
335
+ # This require zlib 1.1.3 (or later).
336
+ # See http://www.gzip.org/zlib/
337
+ #zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
338
+
339
+ # Interface to the Expat XML parser
340
+ # More information on Expat can be found at www.libexpat.org.
341
+ #
342
+ #pyexpat expat/xmlparse.c expat/xmlrole.c expat/xmltok.c pyexpat.c -I$(srcdir)/Modules/expat -DHAVE_EXPAT_CONFIG_H -DXML_POOR_ENTROPY -DUSE_PYEXPAT_CAPI
343
+
344
+ # Hye-Shik Chang's CJKCodecs
345
+
346
+ # multibytecodec is required for all the other CJK codec modules
347
+ #_multibytecodec cjkcodecs/multibytecodec.c
348
+
349
+ #_codecs_cn cjkcodecs/_codecs_cn.c
350
+ #_codecs_hk cjkcodecs/_codecs_hk.c
351
+ #_codecs_iso2022 cjkcodecs/_codecs_iso2022.c
352
+ #_codecs_jp cjkcodecs/_codecs_jp.c
353
+ #_codecs_kr cjkcodecs/_codecs_kr.c
354
+ #_codecs_tw cjkcodecs/_codecs_tw.c
355
+
356
+ # Example -- included for reference only:
357
+ # xx xxmodule.c
358
+
359
+ # Another example -- the 'xxsubtype' module shows C-level subtyping in action
360
+ xxsubtype xxsubtype.c
361
+
362
+ # Uncommenting the following line tells makesetup that all following modules
363
+ # are not built (see above for more detail).
364
+ #
365
+ #*disabled*
366
+ #
367
+ #_sqlite3 _tkinter _curses pyexpat
368
+ #_codecs_jp _codecs_kr _codecs_tw unicodedata
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup.local ADDED
@@ -0,0 +1 @@
 
 
1
+ # Edit this file for local setup changes
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* Generated automatically from /croot/python-split_1694437953337/work/Modules/config.c.in by makesetup. */
2
+ /* -*- C -*- ***********************************************
3
+ Copyright (c) 2000, BeOpen.com.
4
+ Copyright (c) 1995-2000, Corporation for National Research Initiatives.
5
+ Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
6
+ All rights reserved.
7
+
8
+ See the file "Misc/COPYRIGHT" for information on usage and
9
+ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10
+ ******************************************************************/
11
+
12
+ /* Module configuration */
13
+
14
+ /* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */
15
+
16
+ /* This file contains the table of built-in modules.
17
+ See create_builtin() in import.c. */
18
+
19
+ #include "Python.h"
20
+
21
+ #ifdef __cplusplus
22
+ extern "C" {
23
+ #endif
24
+
25
+
26
+ extern PyObject* PyInit_posix(void);
27
+ extern PyObject* PyInit_errno(void);
28
+ extern PyObject* PyInit_pwd(void);
29
+ extern PyObject* PyInit__sre(void);
30
+ extern PyObject* PyInit__codecs(void);
31
+ extern PyObject* PyInit__weakref(void);
32
+ extern PyObject* PyInit__functools(void);
33
+ extern PyObject* PyInit__operator(void);
34
+ extern PyObject* PyInit__collections(void);
35
+ extern PyObject* PyInit__abc(void);
36
+ extern PyObject* PyInit_itertools(void);
37
+ extern PyObject* PyInit_atexit(void);
38
+ extern PyObject* PyInit__signal(void);
39
+ extern PyObject* PyInit__stat(void);
40
+ extern PyObject* PyInit_time(void);
41
+ extern PyObject* PyInit__thread(void);
42
+ extern PyObject* PyInit__locale(void);
43
+ extern PyObject* PyInit__io(void);
44
+ extern PyObject* PyInit_faulthandler(void);
45
+ extern PyObject* PyInit__tracemalloc(void);
46
+ extern PyObject* PyInit__symtable(void);
47
+ extern PyObject* PyInit_xxsubtype(void);
48
+
49
+ /* -- ADDMODULE MARKER 1 -- */
50
+
51
+ extern PyObject* PyMarshal_Init(void);
52
+ extern PyObject* PyInit__imp(void);
53
+ extern PyObject* PyInit_gc(void);
54
+ extern PyObject* PyInit__ast(void);
55
+ extern PyObject* _PyWarnings_Init(void);
56
+ extern PyObject* PyInit__string(void);
57
+
58
+ struct _inittab _PyImport_Inittab[] = {
59
+
60
+ {"posix", PyInit_posix},
61
+ {"errno", PyInit_errno},
62
+ {"pwd", PyInit_pwd},
63
+ {"_sre", PyInit__sre},
64
+ {"_codecs", PyInit__codecs},
65
+ {"_weakref", PyInit__weakref},
66
+ {"_functools", PyInit__functools},
67
+ {"_operator", PyInit__operator},
68
+ {"_collections", PyInit__collections},
69
+ {"_abc", PyInit__abc},
70
+ {"itertools", PyInit_itertools},
71
+ {"atexit", PyInit_atexit},
72
+ {"_signal", PyInit__signal},
73
+ {"_stat", PyInit__stat},
74
+ {"time", PyInit_time},
75
+ {"_thread", PyInit__thread},
76
+ {"_locale", PyInit__locale},
77
+ {"_io", PyInit__io},
78
+ {"faulthandler", PyInit_faulthandler},
79
+ {"_tracemalloc", PyInit__tracemalloc},
80
+ {"_symtable", PyInit__symtable},
81
+ {"xxsubtype", PyInit_xxsubtype},
82
+
83
+ /* -- ADDMODULE MARKER 2 -- */
84
+
85
+ /* This module lives in marshal.c */
86
+ {"marshal", PyMarshal_Init},
87
+
88
+ /* This lives in import.c */
89
+ {"_imp", PyInit__imp},
90
+
91
+ /* This lives in Python/Python-ast.c */
92
+ {"_ast", PyInit__ast},
93
+
94
+ /* These entries are here for sys.builtin_module_names */
95
+ {"builtins", NULL},
96
+ {"sys", NULL},
97
+
98
+ /* This lives in gcmodule.c */
99
+ {"gc", PyInit_gc},
100
+
101
+ /* This lives in _warnings.c */
102
+ {"_warnings", _PyWarnings_Init},
103
+
104
+ /* This lives in Objects/unicodeobject.c */
105
+ {"_string", PyInit__string},
106
+
107
+ /* Sentinel */
108
+ {0, 0}
109
+ };
110
+
111
+
112
+ #ifdef __cplusplus
113
+ }
114
+ #endif
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c.in ADDED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /* -*- C -*- ***********************************************
2
+ Copyright (c) 2000, BeOpen.com.
3
+ Copyright (c) 1995-2000, Corporation for National Research Initiatives.
4
+ Copyright (c) 1990-1995, Stichting Mathematisch Centrum.
5
+ All rights reserved.
6
+
7
+ See the file "Misc/COPYRIGHT" for information on usage and
8
+ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
9
+ ******************************************************************/
10
+
11
+ /* Module configuration */
12
+
13
+ /* !!! !!! !!! This file is edited by the makesetup script !!! !!! !!! */
14
+
15
+ /* This file contains the table of built-in modules.
16
+ See create_builtin() in import.c. */
17
+
18
+ #include "Python.h"
19
+
20
+ #ifdef __cplusplus
21
+ extern "C" {
22
+ #endif
23
+
24
+
25
+ /* -- ADDMODULE MARKER 1 -- */
26
+
27
+ extern PyObject* PyMarshal_Init(void);
28
+ extern PyObject* PyInit__imp(void);
29
+ extern PyObject* PyInit_gc(void);
30
+ extern PyObject* PyInit__ast(void);
31
+ extern PyObject* _PyWarnings_Init(void);
32
+ extern PyObject* PyInit__string(void);
33
+
34
+ struct _inittab _PyImport_Inittab[] = {
35
+
36
+ /* -- ADDMODULE MARKER 2 -- */
37
+
38
+ /* This module lives in marshal.c */
39
+ {"marshal", PyMarshal_Init},
40
+
41
+ /* This lives in import.c */
42
+ {"_imp", PyInit__imp},
43
+
44
+ /* This lives in Python/Python-ast.c */
45
+ {"_ast", PyInit__ast},
46
+
47
+ /* These entries are here for sys.builtin_module_names */
48
+ {"builtins", NULL},
49
+ {"sys", NULL},
50
+
51
+ /* This lives in gcmodule.c */
52
+ {"gc", PyInit_gc},
53
+
54
+ /* This lives in _warnings.c */
55
+ {"_warnings", _PyWarnings_Init},
56
+
57
+ /* This lives in Objects/unicodeobject.c */
58
+ {"_string", PyInit__string},
59
+
60
+ /* Sentinel */
61
+ {0, 0}
62
+ };
63
+
64
+
65
+ #ifdef __cplusplus
66
+ }
67
+ #endif
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/install-sh ADDED
@@ -0,0 +1,518 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/sh
2
+ # install - install a program, script, or datafile
3
+
4
+ scriptversion=2018-03-11.20; # UTC
5
+
6
+ # This originates from X11R5 (mit/util/scripts/install.sh), which was
7
+ # later released in X11R6 (xc/config/util/install.sh) with the
8
+ # following copyright and license.
9
+ #
10
+ # Copyright (C) 1994 X Consortium
11
+ #
12
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
13
+ # of this software and associated documentation files (the "Software"), to
14
+ # deal in the Software without restriction, including without limitation the
15
+ # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
16
+ # sell copies of the Software, and to permit persons to whom the Software is
17
+ # furnished to do so, subject to the following conditions:
18
+ #
19
+ # The above copyright notice and this permission notice shall be included in
20
+ # all copies or substantial portions of the Software.
21
+ #
22
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
25
+ # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26
+ # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
27
+ # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
+ #
29
+ # Except as contained in this notice, the name of the X Consortium shall not
30
+ # be used in advertising or otherwise to promote the sale, use or other deal-
31
+ # ings in this Software without prior written authorization from the X Consor-
32
+ # tium.
33
+ #
34
+ #
35
+ # FSF changes to this file are in the public domain.
36
+ #
37
+ # Calling this script install-sh is preferred over install.sh, to prevent
38
+ # 'make' implicit rules from creating a file called install from it
39
+ # when there is no Makefile.
40
+ #
41
+ # This script is compatible with the BSD install script, but was written
42
+ # from scratch.
43
+
44
+ tab=' '
45
+ nl='
46
+ '
47
+ IFS=" $tab$nl"
48
+
49
+ # Set DOITPROG to "echo" to test this script.
50
+
51
+ doit=${DOITPROG-}
52
+ doit_exec=${doit:-exec}
53
+
54
+ # Put in absolute file names if you don't have them in your path;
55
+ # or use environment vars.
56
+
57
+ chgrpprog=${CHGRPPROG-chgrp}
58
+ chmodprog=${CHMODPROG-chmod}
59
+ chownprog=${CHOWNPROG-chown}
60
+ cmpprog=${CMPPROG-cmp}
61
+ cpprog=${CPPROG-cp}
62
+ mkdirprog=${MKDIRPROG-mkdir}
63
+ mvprog=${MVPROG-mv}
64
+ rmprog=${RMPROG-rm}
65
+ stripprog=${STRIPPROG-strip}
66
+
67
+ posix_mkdir=
68
+
69
+ # Desired mode of installed file.
70
+ mode=0755
71
+
72
+ chgrpcmd=
73
+ chmodcmd=$chmodprog
74
+ chowncmd=
75
+ mvcmd=$mvprog
76
+ rmcmd="$rmprog -f"
77
+ stripcmd=
78
+
79
+ src=
80
+ dst=
81
+ dir_arg=
82
+ dst_arg=
83
+
84
+ copy_on_change=false
85
+ is_target_a_directory=possibly
86
+
87
+ usage="\
88
+ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
89
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
90
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
91
+ or: $0 [OPTION]... -d DIRECTORIES...
92
+
93
+ In the 1st form, copy SRCFILE to DSTFILE.
94
+ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
95
+ In the 4th, create DIRECTORIES.
96
+
97
+ Options:
98
+ --help display this help and exit.
99
+ --version display version info and exit.
100
+
101
+ -c (ignored)
102
+ -C install only if different (preserve the last data modification time)
103
+ -d create directories instead of installing files.
104
+ -g GROUP $chgrpprog installed files to GROUP.
105
+ -m MODE $chmodprog installed files to MODE.
106
+ -o USER $chownprog installed files to USER.
107
+ -s $stripprog installed files.
108
+ -t DIRECTORY install into DIRECTORY.
109
+ -T report an error if DSTFILE is a directory.
110
+
111
+ Environment variables override the default commands:
112
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
113
+ RMPROG STRIPPROG
114
+ "
115
+
116
+ while test $# -ne 0; do
117
+ case $1 in
118
+ -c) ;;
119
+
120
+ -C) copy_on_change=true;;
121
+
122
+ -d) dir_arg=true;;
123
+
124
+ -g) chgrpcmd="$chgrpprog $2"
125
+ shift;;
126
+
127
+ --help) echo "$usage"; exit $?;;
128
+
129
+ -m) mode=$2
130
+ case $mode in
131
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
132
+ echo "$0: invalid mode: $mode" >&2
133
+ exit 1;;
134
+ esac
135
+ shift;;
136
+
137
+ -o) chowncmd="$chownprog $2"
138
+ shift;;
139
+
140
+ -s) stripcmd=$stripprog;;
141
+
142
+ -t)
143
+ is_target_a_directory=always
144
+ dst_arg=$2
145
+ # Protect names problematic for 'test' and other utilities.
146
+ case $dst_arg in
147
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
148
+ esac
149
+ shift;;
150
+
151
+ -T) is_target_a_directory=never;;
152
+
153
+ --version) echo "$0 $scriptversion"; exit $?;;
154
+
155
+ --) shift
156
+ break;;
157
+
158
+ -*) echo "$0: invalid option: $1" >&2
159
+ exit 1;;
160
+
161
+ *) break;;
162
+ esac
163
+ shift
164
+ done
165
+
166
+ # We allow the use of options -d and -T together, by making -d
167
+ # take the precedence; this is for compatibility with GNU install.
168
+
169
+ if test -n "$dir_arg"; then
170
+ if test -n "$dst_arg"; then
171
+ echo "$0: target directory not allowed when installing a directory." >&2
172
+ exit 1
173
+ fi
174
+ fi
175
+
176
+ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
177
+ # When -d is used, all remaining arguments are directories to create.
178
+ # When -t is used, the destination is already specified.
179
+ # Otherwise, the last argument is the destination. Remove it from $@.
180
+ for arg
181
+ do
182
+ if test -n "$dst_arg"; then
183
+ # $@ is not empty: it contains at least $arg.
184
+ set fnord "$@" "$dst_arg"
185
+ shift # fnord
186
+ fi
187
+ shift # arg
188
+ dst_arg=$arg
189
+ # Protect names problematic for 'test' and other utilities.
190
+ case $dst_arg in
191
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
192
+ esac
193
+ done
194
+ fi
195
+
196
+ if test $# -eq 0; then
197
+ if test -z "$dir_arg"; then
198
+ echo "$0: no input file specified." >&2
199
+ exit 1
200
+ fi
201
+ # It's OK to call 'install-sh -d' without argument.
202
+ # This can happen when creating conditional directories.
203
+ exit 0
204
+ fi
205
+
206
+ if test -z "$dir_arg"; then
207
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
208
+ if test ! -d "$dst_arg"; then
209
+ echo "$0: $dst_arg: Is not a directory." >&2
210
+ exit 1
211
+ fi
212
+ fi
213
+ fi
214
+
215
+ if test -z "$dir_arg"; then
216
+ do_exit='(exit $ret); exit $ret'
217
+ trap "ret=129; $do_exit" 1
218
+ trap "ret=130; $do_exit" 2
219
+ trap "ret=141; $do_exit" 13
220
+ trap "ret=143; $do_exit" 15
221
+
222
+ # Set umask so as not to create temps with too-generous modes.
223
+ # However, 'strip' requires both read and write access to temps.
224
+ case $mode in
225
+ # Optimize common cases.
226
+ *644) cp_umask=133;;
227
+ *755) cp_umask=22;;
228
+
229
+ *[0-7])
230
+ if test -z "$stripcmd"; then
231
+ u_plus_rw=
232
+ else
233
+ u_plus_rw='% 200'
234
+ fi
235
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
236
+ *)
237
+ if test -z "$stripcmd"; then
238
+ u_plus_rw=
239
+ else
240
+ u_plus_rw=,u+rw
241
+ fi
242
+ cp_umask=$mode$u_plus_rw;;
243
+ esac
244
+ fi
245
+
246
+ for src
247
+ do
248
+ # Protect names problematic for 'test' and other utilities.
249
+ case $src in
250
+ -* | [=\(\)!]) src=./$src;;
251
+ esac
252
+
253
+ if test -n "$dir_arg"; then
254
+ dst=$src
255
+ dstdir=$dst
256
+ test -d "$dstdir"
257
+ dstdir_status=$?
258
+ else
259
+
260
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
261
+ # might cause directories to be created, which would be especially bad
262
+ # if $src (and thus $dsttmp) contains '*'.
263
+ if test ! -f "$src" && test ! -d "$src"; then
264
+ echo "$0: $src does not exist." >&2
265
+ exit 1
266
+ fi
267
+
268
+ if test -z "$dst_arg"; then
269
+ echo "$0: no destination specified." >&2
270
+ exit 1
271
+ fi
272
+ dst=$dst_arg
273
+
274
+ # If destination is a directory, append the input filename.
275
+ if test -d "$dst"; then
276
+ if test "$is_target_a_directory" = never; then
277
+ echo "$0: $dst_arg: Is a directory" >&2
278
+ exit 1
279
+ fi
280
+ dstdir=$dst
281
+ dstbase=`basename "$src"`
282
+ case $dst in
283
+ */) dst=$dst$dstbase;;
284
+ *) dst=$dst/$dstbase;;
285
+ esac
286
+ dstdir_status=0
287
+ else
288
+ dstdir=`dirname "$dst"`
289
+ test -d "$dstdir"
290
+ dstdir_status=$?
291
+ fi
292
+ fi
293
+
294
+ case $dstdir in
295
+ */) dstdirslash=$dstdir;;
296
+ *) dstdirslash=$dstdir/;;
297
+ esac
298
+
299
+ obsolete_mkdir_used=false
300
+
301
+ if test $dstdir_status != 0; then
302
+ case $posix_mkdir in
303
+ '')
304
+ # Create intermediate dirs using mode 755 as modified by the umask.
305
+ # This is like FreeBSD 'install' as of 1997-10-28.
306
+ umask=`umask`
307
+ case $stripcmd.$umask in
308
+ # Optimize common cases.
309
+ *[2367][2367]) mkdir_umask=$umask;;
310
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
311
+
312
+ *[0-7])
313
+ mkdir_umask=`expr $umask + 22 \
314
+ - $umask % 100 % 40 + $umask % 20 \
315
+ - $umask % 10 % 4 + $umask % 2
316
+ `;;
317
+ *) mkdir_umask=$umask,go-w;;
318
+ esac
319
+
320
+ # With -d, create the new directory with the user-specified mode.
321
+ # Otherwise, rely on $mkdir_umask.
322
+ if test -n "$dir_arg"; then
323
+ mkdir_mode=-m$mode
324
+ else
325
+ mkdir_mode=
326
+ fi
327
+
328
+ posix_mkdir=false
329
+ case $umask in
330
+ *[123567][0-7][0-7])
331
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
332
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
333
+ ;;
334
+ *)
335
+ # Note that $RANDOM variable is not portable (e.g. dash); Use it
336
+ # here however when possible just to lower collision chance.
337
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
338
+
339
+ trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
340
+
341
+ # Because "mkdir -p" follows existing symlinks and we likely work
342
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
343
+ # directory is successfully created first before we actually test
344
+ # 'mkdir -p' feature.
345
+ if (umask $mkdir_umask &&
346
+ $mkdirprog $mkdir_mode "$tmpdir" &&
347
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
348
+ then
349
+ if test -z "$dir_arg" || {
350
+ # Check for POSIX incompatibilities with -m.
351
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
352
+ # other-writable bit of parent directory when it shouldn't.
353
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
354
+ test_tmpdir="$tmpdir/a"
355
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
356
+ case $ls_ld_tmpdir in
357
+ d????-?r-*) different_mode=700;;
358
+ d????-?--*) different_mode=755;;
359
+ *) false;;
360
+ esac &&
361
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
362
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
363
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
364
+ }
365
+ }
366
+ then posix_mkdir=:
367
+ fi
368
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
369
+ else
370
+ # Remove any dirs left behind by ancient mkdir implementations.
371
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
372
+ fi
373
+ trap '' 0;;
374
+ esac;;
375
+ esac
376
+
377
+ if
378
+ $posix_mkdir && (
379
+ umask $mkdir_umask &&
380
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
381
+ )
382
+ then :
383
+ else
384
+
385
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
386
+ # or it failed possibly due to a race condition. Create the
387
+ # directory the slow way, step by step, checking for races as we go.
388
+
389
+ case $dstdir in
390
+ /*) prefix='/';;
391
+ [-=\(\)!]*) prefix='./';;
392
+ *) prefix='';;
393
+ esac
394
+
395
+ oIFS=$IFS
396
+ IFS=/
397
+ set -f
398
+ set fnord $dstdir
399
+ shift
400
+ set +f
401
+ IFS=$oIFS
402
+
403
+ prefixes=
404
+
405
+ for d
406
+ do
407
+ test X"$d" = X && continue
408
+
409
+ prefix=$prefix$d
410
+ if test -d "$prefix"; then
411
+ prefixes=
412
+ else
413
+ if $posix_mkdir; then
414
+ (umask=$mkdir_umask &&
415
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
416
+ # Don't fail if two instances are running concurrently.
417
+ test -d "$prefix" || exit 1
418
+ else
419
+ case $prefix in
420
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
421
+ *) qprefix=$prefix;;
422
+ esac
423
+ prefixes="$prefixes '$qprefix'"
424
+ fi
425
+ fi
426
+ prefix=$prefix/
427
+ done
428
+
429
+ if test -n "$prefixes"; then
430
+ # Don't fail if two instances are running concurrently.
431
+ (umask $mkdir_umask &&
432
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
433
+ test -d "$dstdir" || exit 1
434
+ obsolete_mkdir_used=true
435
+ fi
436
+ fi
437
+ fi
438
+
439
+ if test -n "$dir_arg"; then
440
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
441
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
442
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
443
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
444
+ else
445
+
446
+ # Make a couple of temp file names in the proper directory.
447
+ dsttmp=${dstdirslash}_inst.$$_
448
+ rmtmp=${dstdirslash}_rm.$$_
449
+
450
+ # Trap to clean up those temp files at exit.
451
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
452
+
453
+ # Copy the file name to the temp name.
454
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
455
+
456
+ # and set any options; do chmod last to preserve setuid bits.
457
+ #
458
+ # If any of these fail, we abort the whole thing. If we want to
459
+ # ignore errors from any of these, just make sure not to ignore
460
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
461
+ #
462
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
463
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
464
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
465
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
466
+
467
+ # If -C, don't bother to copy if it wouldn't change the file.
468
+ if $copy_on_change &&
469
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
470
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
471
+ set -f &&
472
+ set X $old && old=:$2:$4:$5:$6 &&
473
+ set X $new && new=:$2:$4:$5:$6 &&
474
+ set +f &&
475
+ test "$old" = "$new" &&
476
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
477
+ then
478
+ rm -f "$dsttmp"
479
+ else
480
+ # Rename the file to the real destination.
481
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
482
+
483
+ # The rename failed, perhaps because mv can't rename something else
484
+ # to itself, or perhaps because mv is so ancient that it does not
485
+ # support -f.
486
+ {
487
+ # Now remove or move aside any old file at destination location.
488
+ # We try this two ways since rm can't unlink itself on some
489
+ # systems and the destination file might be busy for other
490
+ # reasons. In this case, the final cleanup might fail but the new
491
+ # file should still install successfully.
492
+ {
493
+ test ! -f "$dst" ||
494
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
495
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
496
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
497
+ } ||
498
+ { echo "$0: cannot unlink or rename $dst" >&2
499
+ (exit 1); exit 1
500
+ }
501
+ } &&
502
+
503
+ # Now rename the file to the real destination.
504
+ $doit $mvcmd "$dsttmp" "$dst"
505
+ }
506
+ fi || exit 1
507
+
508
+ trap '' 0
509
+ fi
510
+ done
511
+
512
+ # Local variables:
513
+ # eval: (add-hook 'before-save-hook 'time-stamp)
514
+ # time-stamp-start: "scriptversion="
515
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
516
+ # time-stamp-time-zone: "UTC0"
517
+ # time-stamp-end: "; # UTC"
518
+ # End:
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/makesetup ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #! /bin/sh
2
+
3
+ # Convert templates into Makefile and config.c, based on the module
4
+ # definitions found in the file Setup.
5
+ #
6
+ # Usage: makesetup [-s dir] [-c file] [-m file] [Setup] ... [-n [Setup] ...]
7
+ #
8
+ # Options:
9
+ # -s directory: alternative source directory (default .)
10
+ # -l directory: library source directory (default derived from $0)
11
+ # -c file: alternative config.c template (default $libdir/config.c.in)
12
+ # -c -: don't write config.c
13
+ # -m file: alternative Makefile template (default ./Makefile.pre)
14
+ # -m -: don't write Makefile
15
+ #
16
+ # Remaining arguments are one or more Setup files (default ./Setup).
17
+ # Setup files after a -n option are used for their variables, modules
18
+ # and libraries but not for their .o files.
19
+ #
20
+ # See Setup for a description of the format of the Setup file.
21
+ #
22
+ # The following edits are made:
23
+ #
24
+ # Copying config.c.in to config.c:
25
+ # - insert an identifying comment at the start
26
+ # - for each <module> mentioned in Setup before *noconfig*:
27
+ # + insert 'extern PyObject* PyInit_<module>(void);' before MARKER 1
28
+ # + insert '{"<module>", PyInit_<module>},' before MARKER 2
29
+ #
30
+ # Copying Makefile.pre to Makefile:
31
+ # - insert an identifying comment at the start
32
+ # - replace _MODBUILT_NAMES_ by the list of *static* and *shared* modules
33
+ # from Setup
34
+ # - replace _MODDISABLED_NAMES_ by the list of *disabled* modules from Setup
35
+ # - replace _MODOBJS_ by the list of objects from Setup (except for
36
+ # Setup files after a -n option)
37
+ # - replace _MODLIBS_ by the list of libraries from Setup
38
+ # - for each object file mentioned in Setup, append a rule
39
+ # '<file>.o: <file>.c; <build commands>' to the end of the Makefile
40
+ # - for each module mentioned in Setup, append a rule
41
+ # which creates a shared library version to the end of the Makefile
42
+ # - for each variable definition found in Setup, insert the definition
43
+ # before the comment 'Definitions added by makesetup'
44
+
45
+ # Loop over command line options
46
+ usage='
47
+ usage: makesetup [-s srcdir] [-l libdir] [-c config.c.in] [-m Makefile.pre]
48
+ [Setup] ... [-n [Setup] ...]'
49
+ srcdir='.'
50
+ libdir=''
51
+ config=''
52
+ makepre=''
53
+ noobjects=''
54
+ doconfig=yes
55
+ while :
56
+ do
57
+ case $1 in
58
+ -s) shift; srcdir=$1; shift;;
59
+ -l) shift; libdir=$1; shift;;
60
+ -c) shift; config=$1; shift;;
61
+ -m) shift; makepre=$1; shift;;
62
+ --) shift; break;;
63
+ -n) noobjects=yes;;
64
+ -*) echo "$usage" 1>&2; exit 2;;
65
+ *) break;;
66
+ esac
67
+ done
68
+
69
+ # Set default libdir and config if not set by command line
70
+ # (Not all systems have dirname)
71
+ case $libdir in
72
+ '') case $0 in
73
+ */*) libdir=`echo $0 | sed 's,/[^/]*$,,'`;;
74
+ *) libdir=.;;
75
+ esac;;
76
+ esac
77
+ case $config in
78
+ '') config=$libdir/config.c.in;;
79
+ esac
80
+ case $makepre in
81
+ '') makepre=Makefile.pre;;
82
+ esac
83
+
84
+ # Newline for sed i and a commands
85
+ NL='\
86
+ '
87
+
88
+ # Setup to link with extra libraries when making shared extensions.
89
+ # Currently, only Cygwin needs this baggage.
90
+ case `uname -s` in
91
+ CYGWIN*) if test $libdir = .
92
+ then
93
+ ExtraLibDir=.
94
+ else
95
+ ExtraLibDir='$(LIBPL)'
96
+ fi
97
+ ExtraLibs="-L$ExtraLibDir -lpython\$(LDVERSION)";;
98
+ esac
99
+
100
+ # Main loop
101
+ for i in ${*-Setup}
102
+ do
103
+ case $i in
104
+ -n) echo '*noobjects*';;
105
+ *) echo '*doconfig*'; cat "$i";;
106
+ esac
107
+ done |
108
+ sed -e 's/[ ]*#.*//' -e '/^[ ]*$/d' |
109
+ (
110
+ rulesf="@rules.$$"
111
+ trap 'rm -f $rulesf' 0 1 2 3
112
+ echo "
113
+ # Rules appended by makesetup
114
+ " >$rulesf
115
+ DEFS=
116
+ BUILT=
117
+ DISABLED=
118
+ MODS=
119
+ SHAREDMODS=
120
+ OBJS=
121
+ LIBS=
122
+ LOCALLIBS=
123
+ BASELIBS=
124
+ while read line
125
+ do
126
+ # to handle backslashes for sh's that don't automatically
127
+ # continue a read when the last char is a backslash
128
+ while echo $line | grep '\\$' > /dev/null
129
+ do
130
+ read extraline
131
+ line=`echo $line| sed s/.$//`$extraline
132
+ done
133
+
134
+ # Output DEFS in reverse order so first definition overrides
135
+ case $line in
136
+ *=*) DEFS="$line$NL$DEFS"; continue;;
137
+ 'include '*) DEFS="$line$NL$DEFS"; continue;;
138
+ '*noobjects*')
139
+ case $noobjects in
140
+ yes) ;;
141
+ *) LOCALLIBS=$LIBS; LIBS=;;
142
+ esac
143
+ noobjects=yes;
144
+ continue;;
145
+ '*doconfig*') doconfig=yes; continue;;
146
+ '*static*') doconfig=yes; continue;;
147
+ '*noconfig*') doconfig=no; continue;;
148
+ '*shared*') doconfig=no; continue;;
149
+ '*disabled*') doconfig=disabled; continue;;
150
+ esac
151
+ srcs=
152
+ cpps=
153
+ libs=
154
+ mods=
155
+ skip=
156
+ for arg in $line
157
+ do
158
+ case $skip in
159
+ libs) libs="$libs $arg"; skip=; continue;;
160
+ cpps) cpps="$cpps $arg"; skip=; continue;;
161
+ srcs) srcs="$srcs $arg"; skip=; continue;;
162
+ esac
163
+ case $arg in
164
+ -framework) libs="$libs $arg"; skip=libs;
165
+ # OSX/OSXS/Darwin framework link cmd
166
+ ;;
167
+ -[IDUCfF]*) cpps="$cpps $arg";;
168
+ -Xcompiler) skip=cpps;;
169
+ -Xlinker) libs="$libs $arg"; skip=libs;;
170
+ -rpath) libs="$libs $arg"; skip=libs;;
171
+ --rpath) libs="$libs $arg"; skip=libs;;
172
+ -[A-Zl]*) libs="$libs $arg";;
173
+ *.a) libs="$libs $arg";;
174
+ *.so) libs="$libs $arg";;
175
+ *.sl) libs="$libs $arg";;
176
+ /*.o) libs="$libs $arg";;
177
+ *.def) libs="$libs $arg";;
178
+ *.o) srcs="$srcs `basename $arg .o`.c";;
179
+ *.[cC]) srcs="$srcs $arg";;
180
+ *.m) srcs="$srcs $arg";; # Objective-C src
181
+ *.cc) srcs="$srcs $arg";;
182
+ *.c++) srcs="$srcs $arg";;
183
+ *.cxx) srcs="$srcs $arg";;
184
+ *.cpp) srcs="$srcs $arg";;
185
+ \$*) libs="$libs $arg"
186
+ cpps="$cpps $arg";;
187
+ *.*) echo 1>&2 "bad word $arg in $line"
188
+ exit 1;;
189
+ -u) skip=libs; libs="$libs -u";;
190
+ [a-zA-Z_]*) mods="$mods $arg";;
191
+ *) echo 1>&2 "bad word $arg in $line"
192
+ exit 1;;
193
+ esac
194
+ done
195
+ case $doconfig in
196
+ yes)
197
+ LIBS="$LIBS $libs"
198
+ MODS="$MODS $mods"
199
+ BUILT="$BUILT $mods"
200
+ ;;
201
+ no)
202
+ BUILT="$BUILT $mods"
203
+ ;;
204
+ disabled)
205
+ DISABLED="$DISABLED $mods"
206
+ continue
207
+ ;;
208
+ esac
209
+ case $noobjects in
210
+ yes) continue;;
211
+ esac
212
+ objs=''
213
+ for src in $srcs
214
+ do
215
+ case $src in
216
+ *.c) obj=`basename $src .c`.o; cc='$(CC)';;
217
+ *.cc) obj=`basename $src .cc`.o; cc='$(CXX)';;
218
+ *.c++) obj=`basename $src .c++`.o; cc='$(CXX)';;
219
+ *.C) obj=`basename $src .C`.o; cc='$(CXX)';;
220
+ *.cxx) obj=`basename $src .cxx`.o; cc='$(CXX)';;
221
+ *.cpp) obj=`basename $src .cpp`.o; cc='$(CXX)';;
222
+ *.m) obj=`basename $src .m`.o; cc='$(CC)';; # Obj-C
223
+ *) continue;;
224
+ esac
225
+ obj="$srcdir/$obj"
226
+ objs="$objs $obj"
227
+ case $src in
228
+ glmodule.c) ;;
229
+ /*) ;;
230
+ \$*) ;;
231
+ *) src='$(srcdir)/'"$srcdir/$src";;
232
+ esac
233
+ case $doconfig in
234
+ no) cc="$cc \$(CCSHARED) \$(PY_CFLAGS) \$(PY_CPPFLAGS)";;
235
+ *)
236
+ cc="$cc \$(PY_BUILTIN_MODULE_CFLAGS)";;
237
+ esac
238
+ rule="$obj: $src; $cc $cpps -c $src -o $obj"
239
+ echo "$rule" >>$rulesf
240
+ done
241
+ case $doconfig in
242
+ yes) OBJS="$OBJS $objs";;
243
+ esac
244
+ for mod in $mods
245
+ do
246
+ file="$srcdir/$mod\$(EXT_SUFFIX)"
247
+ case $doconfig in
248
+ no) SHAREDMODS="$SHAREDMODS $file";;
249
+ esac
250
+ rule="$file: $objs"
251
+ rule="$rule; \$(BLDSHARED) $objs $libs $ExtraLibs -o $file"
252
+ echo "$rule" >>$rulesf
253
+ done
254
+ done
255
+
256
+ case $SHAREDMODS in
257
+ '') ;;
258
+ *) DEFS="SHAREDMODS=$SHAREDMODS$NL$DEFS";;
259
+ esac
260
+
261
+ case $noobjects in
262
+ yes) BASELIBS=$LIBS;;
263
+ *) LOCALLIBS=$LIBS;;
264
+ esac
265
+ LIBS='$(LOCALMODLIBS) $(BASEMODLIBS)'
266
+ DEFS="BASEMODLIBS=$BASELIBS$NL$DEFS"
267
+ DEFS="LOCALMODLIBS=$LOCALLIBS$NL$DEFS"
268
+
269
+ EXTDECLS=
270
+ INITBITS=
271
+ for mod in $MODS
272
+ do
273
+ EXTDECLS="${EXTDECLS}extern PyObject* PyInit_$mod(void);$NL"
274
+ INITBITS="${INITBITS} {\"$mod\", PyInit_$mod},$NL"
275
+ done
276
+
277
+
278
+ case $config in
279
+ -) ;;
280
+ *) sed -e "
281
+ 1i$NL/* Generated automatically from $config by makesetup. */
282
+ /MARKER 1/i$NL$EXTDECLS
283
+
284
+ /MARKER 2/i$NL$INITBITS
285
+
286
+ " $config >config.c
287
+ ;;
288
+ esac
289
+
290
+ case $makepre in
291
+ -) ;;
292
+ *) sedf="@sed.in.$$"
293
+ trap 'rm -f $sedf' 0 1 2 3
294
+ echo "1i\\" >$sedf
295
+ str="# Generated automatically from $makepre by makesetup."
296
+ echo "$str" >>$sedf
297
+ echo "s%_MODBUILT_NAMES_%$BUILT%" >>$sedf
298
+ echo "s%_MODDISABLED_NAMES_%$DISABLED%" >>$sedf
299
+ echo "s%_MODOBJS_%$OBJS%" >>$sedf
300
+ echo "s%_MODLIBS_%$LIBS%" >>$sedf
301
+ echo "/Definitions added by makesetup/a$NL$NL$DEFS" >>$sedf
302
+ sed -f $sedf $makepre >Makefile
303
+ cat $rulesf >>Makefile
304
+ rm -f $sedf
305
+ ;;
306
+ esac
307
+
308
+ rm -f $rulesf
309
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/python-config.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/workspace/anaconda3/bin/python3.8
2
+ # -*- python -*-
3
+
4
+ # Keep this script in sync with python-config.sh.in
5
+
6
+ import getopt
7
+ import os
8
+ import sys
9
+ import sysconfig
10
+
11
+ valid_opts = ['prefix', 'exec-prefix', 'includes', 'libs', 'cflags',
12
+ 'ldflags', 'extension-suffix', 'help', 'abiflags', 'configdir',
13
+ 'embed']
14
+
15
+ def exit_with_usage(code=1):
16
+ print("Usage: {0} [{1}]".format(
17
+ sys.argv[0], '|'.join('--'+opt for opt in valid_opts)), file=sys.stderr)
18
+ sys.exit(code)
19
+
20
+ try:
21
+ opts, args = getopt.getopt(sys.argv[1:], '', valid_opts)
22
+ except getopt.error:
23
+ exit_with_usage()
24
+
25
+ if not opts:
26
+ exit_with_usage()
27
+
28
+ pyver = sysconfig.get_config_var('VERSION')
29
+ getvar = sysconfig.get_config_var
30
+
31
+ opt_flags = [flag for (flag, val) in opts]
32
+
33
+ if '--help' in opt_flags:
34
+ exit_with_usage(code=0)
35
+
36
+ for opt in opt_flags:
37
+ if opt == '--prefix':
38
+ print(sysconfig.get_config_var('prefix'))
39
+
40
+ elif opt == '--exec-prefix':
41
+ print(sysconfig.get_config_var('exec_prefix'))
42
+
43
+ elif opt in ('--includes', '--cflags'):
44
+ flags = ['-I' + sysconfig.get_path('include'),
45
+ '-I' + sysconfig.get_path('platinclude')]
46
+ if opt == '--cflags':
47
+ flags.extend(getvar('CFLAGS').split())
48
+ print(' '.join(flags))
49
+
50
+ elif opt in ('--libs', '--ldflags'):
51
+ libs = []
52
+ if '--embed' in opt_flags:
53
+ libs.append('-lpython' + pyver + sys.abiflags)
54
+ else:
55
+ libpython = getvar('LIBPYTHON')
56
+ if libpython:
57
+ libs.append(libpython)
58
+ libs.extend(getvar('LIBS').split() + getvar('SYSLIBS').split())
59
+
60
+ # add the prefix/lib/pythonX.Y/config dir, but only if there is no
61
+ # shared library in prefix/lib/.
62
+ if opt == '--ldflags':
63
+ if not getvar('Py_ENABLE_SHARED'):
64
+ libs.insert(0, '-L' + getvar('LIBPL'))
65
+ print(' '.join(libs))
66
+
67
+ elif opt == '--extension-suffix':
68
+ print(sysconfig.get_config_var('EXT_SUFFIX'))
69
+
70
+ elif opt == '--abiflags':
71
+ print(sys.abiflags)
72
+
73
+ elif opt == '--configdir':
74
+ print(sysconfig.get_config_var('LIBPL'))
my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/python.o ADDED
Binary file (11.5 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/curses/textpad.py ADDED
@@ -0,0 +1,201 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Simple textbox editing widget with Emacs-like keybindings."""
2
+
3
+ import curses
4
+ import curses.ascii
5
+
6
+ def rectangle(win, uly, ulx, lry, lrx):
7
+ """Draw a rectangle with corners at the provided upper-left
8
+ and lower-right coordinates.
9
+ """
10
+ win.vline(uly+1, ulx, curses.ACS_VLINE, lry - uly - 1)
11
+ win.hline(uly, ulx+1, curses.ACS_HLINE, lrx - ulx - 1)
12
+ win.hline(lry, ulx+1, curses.ACS_HLINE, lrx - ulx - 1)
13
+ win.vline(uly+1, lrx, curses.ACS_VLINE, lry - uly - 1)
14
+ win.addch(uly, ulx, curses.ACS_ULCORNER)
15
+ win.addch(uly, lrx, curses.ACS_URCORNER)
16
+ win.addch(lry, lrx, curses.ACS_LRCORNER)
17
+ win.addch(lry, ulx, curses.ACS_LLCORNER)
18
+
19
+ class Textbox:
20
+ """Editing widget using the interior of a window object.
21
+ Supports the following Emacs-like key bindings:
22
+
23
+ Ctrl-A Go to left edge of window.
24
+ Ctrl-B Cursor left, wrapping to previous line if appropriate.
25
+ Ctrl-D Delete character under cursor.
26
+ Ctrl-E Go to right edge (stripspaces off) or end of line (stripspaces on).
27
+ Ctrl-F Cursor right, wrapping to next line when appropriate.
28
+ Ctrl-G Terminate, returning the window contents.
29
+ Ctrl-H Delete character backward.
30
+ Ctrl-J Terminate if the window is 1 line, otherwise insert newline.
31
+ Ctrl-K If line is blank, delete it, otherwise clear to end of line.
32
+ Ctrl-L Refresh screen.
33
+ Ctrl-N Cursor down; move down one line.
34
+ Ctrl-O Insert a blank line at cursor location.
35
+ Ctrl-P Cursor up; move up one line.
36
+
37
+ Move operations do nothing if the cursor is at an edge where the movement
38
+ is not possible. The following synonyms are supported where possible:
39
+
40
+ KEY_LEFT = Ctrl-B, KEY_RIGHT = Ctrl-F, KEY_UP = Ctrl-P, KEY_DOWN = Ctrl-N
41
+ KEY_BACKSPACE = Ctrl-h
42
+ """
43
+ def __init__(self, win, insert_mode=False):
44
+ self.win = win
45
+ self.insert_mode = insert_mode
46
+ self._update_max_yx()
47
+ self.stripspaces = 1
48
+ self.lastcmd = None
49
+ win.keypad(1)
50
+
51
+ def _update_max_yx(self):
52
+ maxy, maxx = self.win.getmaxyx()
53
+ self.maxy = maxy - 1
54
+ self.maxx = maxx - 1
55
+
56
+ def _end_of_line(self, y):
57
+ """Go to the location of the first blank on the given line,
58
+ returning the index of the last non-blank character."""
59
+ self._update_max_yx()
60
+ last = self.maxx
61
+ while True:
62
+ if curses.ascii.ascii(self.win.inch(y, last)) != curses.ascii.SP:
63
+ last = min(self.maxx, last+1)
64
+ break
65
+ elif last == 0:
66
+ break
67
+ last = last - 1
68
+ return last
69
+
70
+ def _insert_printable_char(self, ch):
71
+ self._update_max_yx()
72
+ (y, x) = self.win.getyx()
73
+ backyx = None
74
+ while y < self.maxy or x < self.maxx:
75
+ if self.insert_mode:
76
+ oldch = self.win.inch()
77
+ # The try-catch ignores the error we trigger from some curses
78
+ # versions by trying to write into the lowest-rightmost spot
79
+ # in the window.
80
+ try:
81
+ self.win.addch(ch)
82
+ except curses.error:
83
+ pass
84
+ if not self.insert_mode or not curses.ascii.isprint(oldch):
85
+ break
86
+ ch = oldch
87
+ (y, x) = self.win.getyx()
88
+ # Remember where to put the cursor back since we are in insert_mode
89
+ if backyx is None:
90
+ backyx = y, x
91
+
92
+ if backyx is not None:
93
+ self.win.move(*backyx)
94
+
95
+ def do_command(self, ch):
96
+ "Process a single editing command."
97
+ self._update_max_yx()
98
+ (y, x) = self.win.getyx()
99
+ self.lastcmd = ch
100
+ if curses.ascii.isprint(ch):
101
+ if y < self.maxy or x < self.maxx:
102
+ self._insert_printable_char(ch)
103
+ elif ch == curses.ascii.SOH: # ^a
104
+ self.win.move(y, 0)
105
+ elif ch in (curses.ascii.STX,curses.KEY_LEFT, curses.ascii.BS,curses.KEY_BACKSPACE):
106
+ if x > 0:
107
+ self.win.move(y, x-1)
108
+ elif y == 0:
109
+ pass
110
+ elif self.stripspaces:
111
+ self.win.move(y-1, self._end_of_line(y-1))
112
+ else:
113
+ self.win.move(y-1, self.maxx)
114
+ if ch in (curses.ascii.BS, curses.KEY_BACKSPACE):
115
+ self.win.delch()
116
+ elif ch == curses.ascii.EOT: # ^d
117
+ self.win.delch()
118
+ elif ch == curses.ascii.ENQ: # ^e
119
+ if self.stripspaces:
120
+ self.win.move(y, self._end_of_line(y))
121
+ else:
122
+ self.win.move(y, self.maxx)
123
+ elif ch in (curses.ascii.ACK, curses.KEY_RIGHT): # ^f
124
+ if x < self.maxx:
125
+ self.win.move(y, x+1)
126
+ elif y == self.maxy:
127
+ pass
128
+ else:
129
+ self.win.move(y+1, 0)
130
+ elif ch == curses.ascii.BEL: # ^g
131
+ return 0
132
+ elif ch == curses.ascii.NL: # ^j
133
+ if self.maxy == 0:
134
+ return 0
135
+ elif y < self.maxy:
136
+ self.win.move(y+1, 0)
137
+ elif ch == curses.ascii.VT: # ^k
138
+ if x == 0 and self._end_of_line(y) == 0:
139
+ self.win.deleteln()
140
+ else:
141
+ # first undo the effect of self._end_of_line
142
+ self.win.move(y, x)
143
+ self.win.clrtoeol()
144
+ elif ch == curses.ascii.FF: # ^l
145
+ self.win.refresh()
146
+ elif ch in (curses.ascii.SO, curses.KEY_DOWN): # ^n
147
+ if y < self.maxy:
148
+ self.win.move(y+1, x)
149
+ if x > self._end_of_line(y+1):
150
+ self.win.move(y+1, self._end_of_line(y+1))
151
+ elif ch == curses.ascii.SI: # ^o
152
+ self.win.insertln()
153
+ elif ch in (curses.ascii.DLE, curses.KEY_UP): # ^p
154
+ if y > 0:
155
+ self.win.move(y-1, x)
156
+ if x > self._end_of_line(y-1):
157
+ self.win.move(y-1, self._end_of_line(y-1))
158
+ return 1
159
+
160
+ def gather(self):
161
+ "Collect and return the contents of the window."
162
+ result = ""
163
+ self._update_max_yx()
164
+ for y in range(self.maxy+1):
165
+ self.win.move(y, 0)
166
+ stop = self._end_of_line(y)
167
+ if stop == 0 and self.stripspaces:
168
+ continue
169
+ for x in range(self.maxx+1):
170
+ if self.stripspaces and x > stop:
171
+ break
172
+ result = result + chr(curses.ascii.ascii(self.win.inch(y, x)))
173
+ if self.maxy > 0:
174
+ result = result + "\n"
175
+ return result
176
+
177
+ def edit(self, validate=None):
178
+ "Edit in the widget window and collect the results."
179
+ while 1:
180
+ ch = self.win.getch()
181
+ if validate:
182
+ ch = validate(ch)
183
+ if not ch:
184
+ continue
185
+ if not self.do_command(ch):
186
+ break
187
+ self.win.refresh()
188
+ return self.gather()
189
+
190
+ if __name__ == '__main__':
191
+ def test_editbox(stdscr):
192
+ ncols, nlines = 9, 4
193
+ uly, ulx = 15, 20
194
+ stdscr.addstr(uly-2, ulx, "Use Ctrl-G to end editing.")
195
+ win = curses.newwin(nlines, ncols, uly, ulx)
196
+ rectangle(stdscr, uly-1, ulx-1, uly + nlines, ulx + ncols)
197
+ stdscr.refresh()
198
+ return Textbox(win).edit()
199
+
200
+ str = curses.wrapper(test_editbox)
201
+ print('Contents of text box:', repr(str))
my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_latin2.py ADDED
@@ -0,0 +1,312 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """ Python Character Mapping Codec mac_latin2 generated from 'MAPPINGS/VENDORS/MICSFT/MAC/LATIN2.TXT' with gencodec.py.
2
+
3
+ Written by Marc-Andre Lemburg (mal@lemburg.com).
4
+
5
+ (c) Copyright CNRI, All Rights Reserved. NO WARRANTY.
6
+ (c) Copyright 2000 Guido van Rossum.
7
+
8
+ """#"
9
+
10
+ import codecs
11
+
12
+ ### Codec APIs
13
+
14
+ class Codec(codecs.Codec):
15
+
16
+ def encode(self,input,errors='strict'):
17
+ return codecs.charmap_encode(input,errors,encoding_table)
18
+
19
+ def decode(self,input,errors='strict'):
20
+ return codecs.charmap_decode(input,errors,decoding_table)
21
+
22
+ class IncrementalEncoder(codecs.IncrementalEncoder):
23
+ def encode(self, input, final=False):
24
+ return codecs.charmap_encode(input,self.errors,encoding_table)[0]
25
+
26
+ class IncrementalDecoder(codecs.IncrementalDecoder):
27
+ def decode(self, input, final=False):
28
+ return codecs.charmap_decode(input,self.errors,decoding_table)[0]
29
+
30
+ class StreamWriter(Codec,codecs.StreamWriter):
31
+ pass
32
+
33
+ class StreamReader(Codec,codecs.StreamReader):
34
+ pass
35
+
36
+ ### encodings module API
37
+
38
+ def getregentry():
39
+ return codecs.CodecInfo(
40
+ name='mac-latin2',
41
+ encode=Codec().encode,
42
+ decode=Codec().decode,
43
+ incrementalencoder=IncrementalEncoder,
44
+ incrementaldecoder=IncrementalDecoder,
45
+ streamreader=StreamReader,
46
+ streamwriter=StreamWriter,
47
+ )
48
+
49
+
50
+ ### Decoding Table
51
+
52
+ decoding_table = (
53
+ '\x00' # 0x00 -> NULL
54
+ '\x01' # 0x01 -> START OF HEADING
55
+ '\x02' # 0x02 -> START OF TEXT
56
+ '\x03' # 0x03 -> END OF TEXT
57
+ '\x04' # 0x04 -> END OF TRANSMISSION
58
+ '\x05' # 0x05 -> ENQUIRY
59
+ '\x06' # 0x06 -> ACKNOWLEDGE
60
+ '\x07' # 0x07 -> BELL
61
+ '\x08' # 0x08 -> BACKSPACE
62
+ '\t' # 0x09 -> HORIZONTAL TABULATION
63
+ '\n' # 0x0A -> LINE FEED
64
+ '\x0b' # 0x0B -> VERTICAL TABULATION
65
+ '\x0c' # 0x0C -> FORM FEED
66
+ '\r' # 0x0D -> CARRIAGE RETURN
67
+ '\x0e' # 0x0E -> SHIFT OUT
68
+ '\x0f' # 0x0F -> SHIFT IN
69
+ '\x10' # 0x10 -> DATA LINK ESCAPE
70
+ '\x11' # 0x11 -> DEVICE CONTROL ONE
71
+ '\x12' # 0x12 -> DEVICE CONTROL TWO
72
+ '\x13' # 0x13 -> DEVICE CONTROL THREE
73
+ '\x14' # 0x14 -> DEVICE CONTROL FOUR
74
+ '\x15' # 0x15 -> NEGATIVE ACKNOWLEDGE
75
+ '\x16' # 0x16 -> SYNCHRONOUS IDLE
76
+ '\x17' # 0x17 -> END OF TRANSMISSION BLOCK
77
+ '\x18' # 0x18 -> CANCEL
78
+ '\x19' # 0x19 -> END OF MEDIUM
79
+ '\x1a' # 0x1A -> SUBSTITUTE
80
+ '\x1b' # 0x1B -> ESCAPE
81
+ '\x1c' # 0x1C -> FILE SEPARATOR
82
+ '\x1d' # 0x1D -> GROUP SEPARATOR
83
+ '\x1e' # 0x1E -> RECORD SEPARATOR
84
+ '\x1f' # 0x1F -> UNIT SEPARATOR
85
+ ' ' # 0x20 -> SPACE
86
+ '!' # 0x21 -> EXCLAMATION MARK
87
+ '"' # 0x22 -> QUOTATION MARK
88
+ '#' # 0x23 -> NUMBER SIGN
89
+ '$' # 0x24 -> DOLLAR SIGN
90
+ '%' # 0x25 -> PERCENT SIGN
91
+ '&' # 0x26 -> AMPERSAND
92
+ "'" # 0x27 -> APOSTROPHE
93
+ '(' # 0x28 -> LEFT PARENTHESIS
94
+ ')' # 0x29 -> RIGHT PARENTHESIS
95
+ '*' # 0x2A -> ASTERISK
96
+ '+' # 0x2B -> PLUS SIGN
97
+ ',' # 0x2C -> COMMA
98
+ '-' # 0x2D -> HYPHEN-MINUS
99
+ '.' # 0x2E -> FULL STOP
100
+ '/' # 0x2F -> SOLIDUS
101
+ '0' # 0x30 -> DIGIT ZERO
102
+ '1' # 0x31 -> DIGIT ONE
103
+ '2' # 0x32 -> DIGIT TWO
104
+ '3' # 0x33 -> DIGIT THREE
105
+ '4' # 0x34 -> DIGIT FOUR
106
+ '5' # 0x35 -> DIGIT FIVE
107
+ '6' # 0x36 -> DIGIT SIX
108
+ '7' # 0x37 -> DIGIT SEVEN
109
+ '8' # 0x38 -> DIGIT EIGHT
110
+ '9' # 0x39 -> DIGIT NINE
111
+ ':' # 0x3A -> COLON
112
+ ';' # 0x3B -> SEMICOLON
113
+ '<' # 0x3C -> LESS-THAN SIGN
114
+ '=' # 0x3D -> EQUALS SIGN
115
+ '>' # 0x3E -> GREATER-THAN SIGN
116
+ '?' # 0x3F -> QUESTION MARK
117
+ '@' # 0x40 -> COMMERCIAL AT
118
+ 'A' # 0x41 -> LATIN CAPITAL LETTER A
119
+ 'B' # 0x42 -> LATIN CAPITAL LETTER B
120
+ 'C' # 0x43 -> LATIN CAPITAL LETTER C
121
+ 'D' # 0x44 -> LATIN CAPITAL LETTER D
122
+ 'E' # 0x45 -> LATIN CAPITAL LETTER E
123
+ 'F' # 0x46 -> LATIN CAPITAL LETTER F
124
+ 'G' # 0x47 -> LATIN CAPITAL LETTER G
125
+ 'H' # 0x48 -> LATIN CAPITAL LETTER H
126
+ 'I' # 0x49 -> LATIN CAPITAL LETTER I
127
+ 'J' # 0x4A -> LATIN CAPITAL LETTER J
128
+ 'K' # 0x4B -> LATIN CAPITAL LETTER K
129
+ 'L' # 0x4C -> LATIN CAPITAL LETTER L
130
+ 'M' # 0x4D -> LATIN CAPITAL LETTER M
131
+ 'N' # 0x4E -> LATIN CAPITAL LETTER N
132
+ 'O' # 0x4F -> LATIN CAPITAL LETTER O
133
+ 'P' # 0x50 -> LATIN CAPITAL LETTER P
134
+ 'Q' # 0x51 -> LATIN CAPITAL LETTER Q
135
+ 'R' # 0x52 -> LATIN CAPITAL LETTER R
136
+ 'S' # 0x53 -> LATIN CAPITAL LETTER S
137
+ 'T' # 0x54 -> LATIN CAPITAL LETTER T
138
+ 'U' # 0x55 -> LATIN CAPITAL LETTER U
139
+ 'V' # 0x56 -> LATIN CAPITAL LETTER V
140
+ 'W' # 0x57 -> LATIN CAPITAL LETTER W
141
+ 'X' # 0x58 -> LATIN CAPITAL LETTER X
142
+ 'Y' # 0x59 -> LATIN CAPITAL LETTER Y
143
+ 'Z' # 0x5A -> LATIN CAPITAL LETTER Z
144
+ '[' # 0x5B -> LEFT SQUARE BRACKET
145
+ '\\' # 0x5C -> REVERSE SOLIDUS
146
+ ']' # 0x5D -> RIGHT SQUARE BRACKET
147
+ '^' # 0x5E -> CIRCUMFLEX ACCENT
148
+ '_' # 0x5F -> LOW LINE
149
+ '`' # 0x60 -> GRAVE ACCENT
150
+ 'a' # 0x61 -> LATIN SMALL LETTER A
151
+ 'b' # 0x62 -> LATIN SMALL LETTER B
152
+ 'c' # 0x63 -> LATIN SMALL LETTER C
153
+ 'd' # 0x64 -> LATIN SMALL LETTER D
154
+ 'e' # 0x65 -> LATIN SMALL LETTER E
155
+ 'f' # 0x66 -> LATIN SMALL LETTER F
156
+ 'g' # 0x67 -> LATIN SMALL LETTER G
157
+ 'h' # 0x68 -> LATIN SMALL LETTER H
158
+ 'i' # 0x69 -> LATIN SMALL LETTER I
159
+ 'j' # 0x6A -> LATIN SMALL LETTER J
160
+ 'k' # 0x6B -> LATIN SMALL LETTER K
161
+ 'l' # 0x6C -> LATIN SMALL LETTER L
162
+ 'm' # 0x6D -> LATIN SMALL LETTER M
163
+ 'n' # 0x6E -> LATIN SMALL LETTER N
164
+ 'o' # 0x6F -> LATIN SMALL LETTER O
165
+ 'p' # 0x70 -> LATIN SMALL LETTER P
166
+ 'q' # 0x71 -> LATIN SMALL LETTER Q
167
+ 'r' # 0x72 -> LATIN SMALL LETTER R
168
+ 's' # 0x73 -> LATIN SMALL LETTER S
169
+ 't' # 0x74 -> LATIN SMALL LETTER T
170
+ 'u' # 0x75 -> LATIN SMALL LETTER U
171
+ 'v' # 0x76 -> LATIN SMALL LETTER V
172
+ 'w' # 0x77 -> LATIN SMALL LETTER W
173
+ 'x' # 0x78 -> LATIN SMALL LETTER X
174
+ 'y' # 0x79 -> LATIN SMALL LETTER Y
175
+ 'z' # 0x7A -> LATIN SMALL LETTER Z
176
+ '{' # 0x7B -> LEFT CURLY BRACKET
177
+ '|' # 0x7C -> VERTICAL LINE
178
+ '}' # 0x7D -> RIGHT CURLY BRACKET
179
+ '~' # 0x7E -> TILDE
180
+ '\x7f' # 0x7F -> DELETE
181
+ '\xc4' # 0x80 -> LATIN CAPITAL LETTER A WITH DIAERESIS
182
+ '\u0100' # 0x81 -> LATIN CAPITAL LETTER A WITH MACRON
183
+ '\u0101' # 0x82 -> LATIN SMALL LETTER A WITH MACRON
184
+ '\xc9' # 0x83 -> LATIN CAPITAL LETTER E WITH ACUTE
185
+ '\u0104' # 0x84 -> LATIN CAPITAL LETTER A WITH OGONEK
186
+ '\xd6' # 0x85 -> LATIN CAPITAL LETTER O WITH DIAERESIS
187
+ '\xdc' # 0x86 -> LATIN CAPITAL LETTER U WITH DIAERESIS
188
+ '\xe1' # 0x87 -> LATIN SMALL LETTER A WITH ACUTE
189
+ '\u0105' # 0x88 -> LATIN SMALL LETTER A WITH OGONEK
190
+ '\u010c' # 0x89 -> LATIN CAPITAL LETTER C WITH CARON
191
+ '\xe4' # 0x8A -> LATIN SMALL LETTER A WITH DIAERESIS
192
+ '\u010d' # 0x8B -> LATIN SMALL LETTER C WITH CARON
193
+ '\u0106' # 0x8C -> LATIN CAPITAL LETTER C WITH ACUTE
194
+ '\u0107' # 0x8D -> LATIN SMALL LETTER C WITH ACUTE
195
+ '\xe9' # 0x8E -> LATIN SMALL LETTER E WITH ACUTE
196
+ '\u0179' # 0x8F -> LATIN CAPITAL LETTER Z WITH ACUTE
197
+ '\u017a' # 0x90 -> LATIN SMALL LETTER Z WITH ACUTE
198
+ '\u010e' # 0x91 -> LATIN CAPITAL LETTER D WITH CARON
199
+ '\xed' # 0x92 -> LATIN SMALL LETTER I WITH ACUTE
200
+ '\u010f' # 0x93 -> LATIN SMALL LETTER D WITH CARON
201
+ '\u0112' # 0x94 -> LATIN CAPITAL LETTER E WITH MACRON
202
+ '\u0113' # 0x95 -> LATIN SMALL LETTER E WITH MACRON
203
+ '\u0116' # 0x96 -> LATIN CAPITAL LETTER E WITH DOT ABOVE
204
+ '\xf3' # 0x97 -> LATIN SMALL LETTER O WITH ACUTE
205
+ '\u0117' # 0x98 -> LATIN SMALL LETTER E WITH DOT ABOVE
206
+ '\xf4' # 0x99 -> LATIN SMALL LETTER O WITH CIRCUMFLEX
207
+ '\xf6' # 0x9A -> LATIN SMALL LETTER O WITH DIAERESIS
208
+ '\xf5' # 0x9B -> LATIN SMALL LETTER O WITH TILDE
209
+ '\xfa' # 0x9C -> LATIN SMALL LETTER U WITH ACUTE
210
+ '\u011a' # 0x9D -> LATIN CAPITAL LETTER E WITH CARON
211
+ '\u011b' # 0x9E -> LATIN SMALL LETTER E WITH CARON
212
+ '\xfc' # 0x9F -> LATIN SMALL LETTER U WITH DIAERESIS
213
+ '\u2020' # 0xA0 -> DAGGER
214
+ '\xb0' # 0xA1 -> DEGREE SIGN
215
+ '\u0118' # 0xA2 -> LATIN CAPITAL LETTER E WITH OGONEK
216
+ '\xa3' # 0xA3 -> POUND SIGN
217
+ '\xa7' # 0xA4 -> SECTION SIGN
218
+ '\u2022' # 0xA5 -> BULLET
219
+ '\xb6' # 0xA6 -> PILCROW SIGN
220
+ '\xdf' # 0xA7 -> LATIN SMALL LETTER SHARP S
221
+ '\xae' # 0xA8 -> REGISTERED SIGN
222
+ '\xa9' # 0xA9 -> COPYRIGHT SIGN
223
+ '\u2122' # 0xAA -> TRADE MARK SIGN
224
+ '\u0119' # 0xAB -> LATIN SMALL LETTER E WITH OGONEK
225
+ '\xa8' # 0xAC -> DIAERESIS
226
+ '\u2260' # 0xAD -> NOT EQUAL TO
227
+ '\u0123' # 0xAE -> LATIN SMALL LETTER G WITH CEDILLA
228
+ '\u012e' # 0xAF -> LATIN CAPITAL LETTER I WITH OGONEK
229
+ '\u012f' # 0xB0 -> LATIN SMALL LETTER I WITH OGONEK
230
+ '\u012a' # 0xB1 -> LATIN CAPITAL LETTER I WITH MACRON
231
+ '\u2264' # 0xB2 -> LESS-THAN OR EQUAL TO
232
+ '\u2265' # 0xB3 -> GREATER-THAN OR EQUAL TO
233
+ '\u012b' # 0xB4 -> LATIN SMALL LETTER I WITH MACRON
234
+ '\u0136' # 0xB5 -> LATIN CAPITAL LETTER K WITH CEDILLA
235
+ '\u2202' # 0xB6 -> PARTIAL DIFFERENTIAL
236
+ '\u2211' # 0xB7 -> N-ARY SUMMATION
237
+ '\u0142' # 0xB8 -> LATIN SMALL LETTER L WITH STROKE
238
+ '\u013b' # 0xB9 -> LATIN CAPITAL LETTER L WITH CEDILLA
239
+ '\u013c' # 0xBA -> LATIN SMALL LETTER L WITH CEDILLA
240
+ '\u013d' # 0xBB -> LATIN CAPITAL LETTER L WITH CARON
241
+ '\u013e' # 0xBC -> LATIN SMALL LETTER L WITH CARON
242
+ '\u0139' # 0xBD -> LATIN CAPITAL LETTER L WITH ACUTE
243
+ '\u013a' # 0xBE -> LATIN SMALL LETTER L WITH ACUTE
244
+ '\u0145' # 0xBF -> LATIN CAPITAL LETTER N WITH CEDILLA
245
+ '\u0146' # 0xC0 -> LATIN SMALL LETTER N WITH CEDILLA
246
+ '\u0143' # 0xC1 -> LATIN CAPITAL LETTER N WITH ACUTE
247
+ '\xac' # 0xC2 -> NOT SIGN
248
+ '\u221a' # 0xC3 -> SQUARE ROOT
249
+ '\u0144' # 0xC4 -> LATIN SMALL LETTER N WITH ACUTE
250
+ '\u0147' # 0xC5 -> LATIN CAPITAL LETTER N WITH CARON
251
+ '\u2206' # 0xC6 -> INCREMENT
252
+ '\xab' # 0xC7 -> LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
253
+ '\xbb' # 0xC8 -> RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
254
+ '\u2026' # 0xC9 -> HORIZONTAL ELLIPSIS
255
+ '\xa0' # 0xCA -> NO-BREAK SPACE
256
+ '\u0148' # 0xCB -> LATIN SMALL LETTER N WITH CARON
257
+ '\u0150' # 0xCC -> LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
258
+ '\xd5' # 0xCD -> LATIN CAPITAL LETTER O WITH TILDE
259
+ '\u0151' # 0xCE -> LATIN SMALL LETTER O WITH DOUBLE ACUTE
260
+ '\u014c' # 0xCF -> LATIN CAPITAL LETTER O WITH MACRON
261
+ '\u2013' # 0xD0 -> EN DASH
262
+ '\u2014' # 0xD1 -> EM DASH
263
+ '\u201c' # 0xD2 -> LEFT DOUBLE QUOTATION MARK
264
+ '\u201d' # 0xD3 -> RIGHT DOUBLE QUOTATION MARK
265
+ '\u2018' # 0xD4 -> LEFT SINGLE QUOTATION MARK
266
+ '\u2019' # 0xD5 -> RIGHT SINGLE QUOTATION MARK
267
+ '\xf7' # 0xD6 -> DIVISION SIGN
268
+ '\u25ca' # 0xD7 -> LOZENGE
269
+ '\u014d' # 0xD8 -> LATIN SMALL LETTER O WITH MACRON
270
+ '\u0154' # 0xD9 -> LATIN CAPITAL LETTER R WITH ACUTE
271
+ '\u0155' # 0xDA -> LATIN SMALL LETTER R WITH ACUTE
272
+ '\u0158' # 0xDB -> LATIN CAPITAL LETTER R WITH CARON
273
+ '\u2039' # 0xDC -> SINGLE LEFT-POINTING ANGLE QUOTATION MARK
274
+ '\u203a' # 0xDD -> SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
275
+ '\u0159' # 0xDE -> LATIN SMALL LETTER R WITH CARON
276
+ '\u0156' # 0xDF -> LATIN CAPITAL LETTER R WITH CEDILLA
277
+ '\u0157' # 0xE0 -> LATIN SMALL LETTER R WITH CEDILLA
278
+ '\u0160' # 0xE1 -> LATIN CAPITAL LETTER S WITH CARON
279
+ '\u201a' # 0xE2 -> SINGLE LOW-9 QUOTATION MARK
280
+ '\u201e' # 0xE3 -> DOUBLE LOW-9 QUOTATION MARK
281
+ '\u0161' # 0xE4 -> LATIN SMALL LETTER S WITH CARON
282
+ '\u015a' # 0xE5 -> LATIN CAPITAL LETTER S WITH ACUTE
283
+ '\u015b' # 0xE6 -> LATIN SMALL LETTER S WITH ACUTE
284
+ '\xc1' # 0xE7 -> LATIN CAPITAL LETTER A WITH ACUTE
285
+ '\u0164' # 0xE8 -> LATIN CAPITAL LETTER T WITH CARON
286
+ '\u0165' # 0xE9 -> LATIN SMALL LETTER T WITH CARON
287
+ '\xcd' # 0xEA -> LATIN CAPITAL LETTER I WITH ACUTE
288
+ '\u017d' # 0xEB -> LATIN CAPITAL LETTER Z WITH CARON
289
+ '\u017e' # 0xEC -> LATIN SMALL LETTER Z WITH CARON
290
+ '\u016a' # 0xED -> LATIN CAPITAL LETTER U WITH MACRON
291
+ '\xd3' # 0xEE -> LATIN CAPITAL LETTER O WITH ACUTE
292
+ '\xd4' # 0xEF -> LATIN CAPITAL LETTER O WITH CIRCUMFLEX
293
+ '\u016b' # 0xF0 -> LATIN SMALL LETTER U WITH MACRON
294
+ '\u016e' # 0xF1 -> LATIN CAPITAL LETTER U WITH RING ABOVE
295
+ '\xda' # 0xF2 -> LATIN CAPITAL LETTER U WITH ACUTE
296
+ '\u016f' # 0xF3 -> LATIN SMALL LETTER U WITH RING ABOVE
297
+ '\u0170' # 0xF4 -> LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
298
+ '\u0171' # 0xF5 -> LATIN SMALL LETTER U WITH DOUBLE ACUTE
299
+ '\u0172' # 0xF6 -> LATIN CAPITAL LETTER U WITH OGONEK
300
+ '\u0173' # 0xF7 -> LATIN SMALL LETTER U WITH OGONEK
301
+ '\xdd' # 0xF8 -> LATIN CAPITAL LETTER Y WITH ACUTE
302
+ '\xfd' # 0xF9 -> LATIN SMALL LETTER Y WITH ACUTE
303
+ '\u0137' # 0xFA -> LATIN SMALL LETTER K WITH CEDILLA
304
+ '\u017b' # 0xFB -> LATIN CAPITAL LETTER Z WITH DOT ABOVE
305
+ '\u0141' # 0xFC -> LATIN CAPITAL LETTER L WITH STROKE
306
+ '\u017c' # 0xFD -> LATIN SMALL LETTER Z WITH DOT ABOVE
307
+ '\u0122' # 0xFE -> LATIN CAPITAL LETTER G WITH CEDILLA
308
+ '\u02c7' # 0xFF -> CARON
309
+ )
310
+
311
+ ### Encoding table
312
+ encoding_table=codecs.charmap_build(decoding_table)
my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/__init__.py ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import os.path
3
+ import pkgutil
4
+ import sys
5
+ import runpy
6
+ import tempfile
7
+ import subprocess
8
+
9
+
10
+ __all__ = ["version", "bootstrap"]
11
+ _PACKAGE_NAMES = ('setuptools', 'pip')
12
+ _SETUPTOOLS_VERSION = "56.0.0"
13
+ _PIP_VERSION = "23.0.1"
14
+ _PROJECTS = [
15
+ ("setuptools", _SETUPTOOLS_VERSION, "py3"),
16
+ ("pip", _PIP_VERSION, "py3"),
17
+ ]
18
+
19
+
20
+ def _run_pip(args, additional_paths=None):
21
+ # Run the bootstraping in a subprocess to avoid leaking any state that happens
22
+ # after pip has executed. Particulary, this avoids the case when pip holds onto
23
+ # the files in *additional_paths*, preventing us to remove them at the end of the
24
+ # invocation.
25
+ code = f"""
26
+ import runpy
27
+ import sys
28
+ sys.path = {additional_paths or []} + sys.path
29
+ sys.argv[1:] = {args}
30
+ runpy.run_module("pip", run_name="__main__", alter_sys=True)
31
+ """
32
+
33
+ cmd = [sys.executable, '-c', code]
34
+ if sys.flags.isolated:
35
+ # run code in isolated mode if currently running isolated
36
+ cmd.insert(1, '-I')
37
+ return subprocess.run(cmd, check=True).returncode
38
+
39
+
40
+ def version():
41
+ """
42
+ Returns a string specifying the bundled version of pip.
43
+ """
44
+ return _PIP_VERSION
45
+
46
+ def _disable_pip_configuration_settings():
47
+ # We deliberately ignore all pip environment variables
48
+ # when invoking pip
49
+ # See http://bugs.python.org/issue19734 for details
50
+ keys_to_remove = [k for k in os.environ if k.startswith("PIP_")]
51
+ for k in keys_to_remove:
52
+ del os.environ[k]
53
+ # We also ignore the settings in the default pip configuration file
54
+ # See http://bugs.python.org/issue20053 for details
55
+ os.environ['PIP_CONFIG_FILE'] = os.devnull
56
+
57
+
58
+ def bootstrap(*, root=None, upgrade=False, user=False,
59
+ altinstall=False, default_pip=False,
60
+ verbosity=0):
61
+ """
62
+ Bootstrap pip into the current Python installation (or the given root
63
+ directory).
64
+
65
+ Note that calling this function will alter both sys.path and os.environ.
66
+ """
67
+ # Discard the return value
68
+ _bootstrap(root=root, upgrade=upgrade, user=user,
69
+ altinstall=altinstall, default_pip=default_pip,
70
+ verbosity=verbosity)
71
+
72
+
73
+ def _bootstrap(*, root=None, upgrade=False, user=False,
74
+ altinstall=False, default_pip=False,
75
+ verbosity=0):
76
+ """
77
+ Bootstrap pip into the current Python installation (or the given root
78
+ directory). Returns pip command status code.
79
+
80
+ Note that calling this function will alter both sys.path and os.environ.
81
+ """
82
+ if altinstall and default_pip:
83
+ raise ValueError("Cannot use altinstall and default_pip together")
84
+
85
+ sys.audit("ensurepip.bootstrap", root)
86
+
87
+ _disable_pip_configuration_settings()
88
+
89
+ # By default, installing pip and setuptools installs all of the
90
+ # following scripts (X.Y == running Python version):
91
+ #
92
+ # pip, pipX, pipX.Y, easy_install, easy_install-X.Y
93
+ #
94
+ # pip 1.5+ allows ensurepip to request that some of those be left out
95
+ if altinstall:
96
+ # omit pip, pipX and easy_install
97
+ os.environ["ENSUREPIP_OPTIONS"] = "altinstall"
98
+ elif not default_pip:
99
+ # omit pip and easy_install
100
+ os.environ["ENSUREPIP_OPTIONS"] = "install"
101
+
102
+ with tempfile.TemporaryDirectory() as tmpdir:
103
+ # Put our bundled wheels into a temporary directory and construct the
104
+ # additional paths that need added to sys.path
105
+ additional_paths = []
106
+ for project, version, py_tag in _PROJECTS:
107
+ wheel_name = "{}-{}-{}-none-any.whl".format(project, version, py_tag)
108
+ whl = pkgutil.get_data(
109
+ "ensurepip",
110
+ "_bundled/{}".format(wheel_name),
111
+ )
112
+ with open(os.path.join(tmpdir, wheel_name), "wb") as fp:
113
+ fp.write(whl)
114
+
115
+ additional_paths.append(os.path.join(tmpdir, wheel_name))
116
+
117
+ # Construct the arguments to be passed to the pip command
118
+ args = ["install", "--no-cache-dir", "--no-index", "--find-links", tmpdir]
119
+ if root:
120
+ args += ["--root", root]
121
+ if upgrade:
122
+ args += ["--upgrade"]
123
+ if user:
124
+ args += ["--user"]
125
+ if verbosity:
126
+ args += ["-" + "v" * verbosity]
127
+
128
+ return _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
129
+
130
+ def _uninstall_helper(*, verbosity=0):
131
+ """Helper to support a clean default uninstall process on Windows
132
+
133
+ Note that calling this function may alter os.environ.
134
+ """
135
+ # Nothing to do if pip was never installed, or has been removed
136
+ try:
137
+ import pip
138
+ except ImportError:
139
+ return
140
+
141
+ # If the pip version doesn't match the bundled one, leave it alone
142
+ if pip.__version__ != _PIP_VERSION:
143
+ msg = ("ensurepip will only uninstall a matching version "
144
+ "({!r} installed, {!r} bundled)")
145
+ print(msg.format(pip.__version__, _PIP_VERSION), file=sys.stderr)
146
+ return
147
+
148
+ _disable_pip_configuration_settings()
149
+
150
+ # Construct the arguments to be passed to the pip command
151
+ args = ["uninstall", "-y", "--disable-pip-version-check"]
152
+ if verbosity:
153
+ args += ["-" + "v" * verbosity]
154
+
155
+ return _run_pip(args + [p[0] for p in reversed(_PROJECTS)])
156
+
157
+
158
+ def _main(argv=None):
159
+ import argparse
160
+ parser = argparse.ArgumentParser(prog="python -m ensurepip")
161
+ parser.add_argument(
162
+ "--version",
163
+ action="version",
164
+ version="pip {}".format(version()),
165
+ help="Show the version of pip that is bundled with this Python.",
166
+ )
167
+ parser.add_argument(
168
+ "-v", "--verbose",
169
+ action="count",
170
+ default=0,
171
+ dest="verbosity",
172
+ help=("Give more output. Option is additive, and can be used up to 3 "
173
+ "times."),
174
+ )
175
+ parser.add_argument(
176
+ "-U", "--upgrade",
177
+ action="store_true",
178
+ default=False,
179
+ help="Upgrade pip and dependencies, even if already installed.",
180
+ )
181
+ parser.add_argument(
182
+ "--user",
183
+ action="store_true",
184
+ default=False,
185
+ help="Install using the user scheme.",
186
+ )
187
+ parser.add_argument(
188
+ "--root",
189
+ default=None,
190
+ help="Install everything relative to this alternate root directory.",
191
+ )
192
+ parser.add_argument(
193
+ "--altinstall",
194
+ action="store_true",
195
+ default=False,
196
+ help=("Make an alternate install, installing only the X.Y versioned "
197
+ "scripts (Default: pipX, pipX.Y, easy_install-X.Y)."),
198
+ )
199
+ parser.add_argument(
200
+ "--default-pip",
201
+ action="store_true",
202
+ default=False,
203
+ help=("Make a default pip install, installing the unqualified pip "
204
+ "and easy_install in addition to the versioned scripts."),
205
+ )
206
+
207
+ args = parser.parse_args(argv)
208
+
209
+ return _bootstrap(
210
+ root=args.root,
211
+ upgrade=args.upgrade,
212
+ user=args.user,
213
+ verbosity=args.verbosity,
214
+ altinstall=args.altinstall,
215
+ default_pip=args.default_pip,
216
+ )
my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/__main__.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import ensurepip
2
+ import sys
3
+
4
+ if __name__ == "__main__":
5
+ sys.exit(ensurepip._main())
my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/_uninstall.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Basic pip uninstallation support, helper for the Windows uninstaller"""
2
+
3
+ import argparse
4
+ import ensurepip
5
+ import sys
6
+
7
+
8
+ def _main(argv=None):
9
+ parser = argparse.ArgumentParser(prog="python -m ensurepip._uninstall")
10
+ parser.add_argument(
11
+ "--version",
12
+ action="version",
13
+ version="pip {}".format(ensurepip.version()),
14
+ help="Show the version of pip this will attempt to uninstall.",
15
+ )
16
+ parser.add_argument(
17
+ "-v", "--verbose",
18
+ action="count",
19
+ default=0,
20
+ dest="verbosity",
21
+ help=("Give more output. Option is additive, and can be used up to 3 "
22
+ "times."),
23
+ )
24
+
25
+ args = parser.parse_args(argv)
26
+
27
+ return ensurepip._uninstall_helper(verbosity=args.verbosity)
28
+
29
+
30
+ if __name__ == "__main__":
31
+ sys.exit(_main())
my_container_sandbox/workspace/anaconda3/lib/python3.8/html/__init__.py ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """
2
+ General functions for HTML manipulation.
3
+ """
4
+
5
+ import re as _re
6
+ from html.entities import html5 as _html5
7
+
8
+
9
+ __all__ = ['escape', 'unescape']
10
+
11
+
12
+ def escape(s, quote=True):
13
+ """
14
+ Replace special characters "&", "<" and ">" to HTML-safe sequences.
15
+ If the optional flag quote is true (the default), the quotation mark
16
+ characters, both double quote (") and single quote (') characters are also
17
+ translated.
18
+ """
19
+ s = s.replace("&", "&amp;") # Must be done first!
20
+ s = s.replace("<", "&lt;")
21
+ s = s.replace(">", "&gt;")
22
+ if quote:
23
+ s = s.replace('"', "&quot;")
24
+ s = s.replace('\'', "&#x27;")
25
+ return s
26
+
27
+
28
+ # see http://www.w3.org/TR/html5/syntax.html#tokenizing-character-references
29
+
30
+ _invalid_charrefs = {
31
+ 0x00: '\ufffd', # REPLACEMENT CHARACTER
32
+ 0x0d: '\r', # CARRIAGE RETURN
33
+ 0x80: '\u20ac', # EURO SIGN
34
+ 0x81: '\x81', # <control>
35
+ 0x82: '\u201a', # SINGLE LOW-9 QUOTATION MARK
36
+ 0x83: '\u0192', # LATIN SMALL LETTER F WITH HOOK
37
+ 0x84: '\u201e', # DOUBLE LOW-9 QUOTATION MARK
38
+ 0x85: '\u2026', # HORIZONTAL ELLIPSIS
39
+ 0x86: '\u2020', # DAGGER
40
+ 0x87: '\u2021', # DOUBLE DAGGER
41
+ 0x88: '\u02c6', # MODIFIER LETTER CIRCUMFLEX ACCENT
42
+ 0x89: '\u2030', # PER MILLE SIGN
43
+ 0x8a: '\u0160', # LATIN CAPITAL LETTER S WITH CARON
44
+ 0x8b: '\u2039', # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
45
+ 0x8c: '\u0152', # LATIN CAPITAL LIGATURE OE
46
+ 0x8d: '\x8d', # <control>
47
+ 0x8e: '\u017d', # LATIN CAPITAL LETTER Z WITH CARON
48
+ 0x8f: '\x8f', # <control>
49
+ 0x90: '\x90', # <control>
50
+ 0x91: '\u2018', # LEFT SINGLE QUOTATION MARK
51
+ 0x92: '\u2019', # RIGHT SINGLE QUOTATION MARK
52
+ 0x93: '\u201c', # LEFT DOUBLE QUOTATION MARK
53
+ 0x94: '\u201d', # RIGHT DOUBLE QUOTATION MARK
54
+ 0x95: '\u2022', # BULLET
55
+ 0x96: '\u2013', # EN DASH
56
+ 0x97: '\u2014', # EM DASH
57
+ 0x98: '\u02dc', # SMALL TILDE
58
+ 0x99: '\u2122', # TRADE MARK SIGN
59
+ 0x9a: '\u0161', # LATIN SMALL LETTER S WITH CARON
60
+ 0x9b: '\u203a', # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
61
+ 0x9c: '\u0153', # LATIN SMALL LIGATURE OE
62
+ 0x9d: '\x9d', # <control>
63
+ 0x9e: '\u017e', # LATIN SMALL LETTER Z WITH CARON
64
+ 0x9f: '\u0178', # LATIN CAPITAL LETTER Y WITH DIAERESIS
65
+ }
66
+
67
+ _invalid_codepoints = {
68
+ # 0x0001 to 0x0008
69
+ 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8,
70
+ # 0x000E to 0x001F
71
+ 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
72
+ 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
73
+ # 0x007F to 0x009F
74
+ 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a,
75
+ 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
76
+ 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
77
+ # 0xFDD0 to 0xFDEF
78
+ 0xfdd0, 0xfdd1, 0xfdd2, 0xfdd3, 0xfdd4, 0xfdd5, 0xfdd6, 0xfdd7, 0xfdd8,
79
+ 0xfdd9, 0xfdda, 0xfddb, 0xfddc, 0xfddd, 0xfdde, 0xfddf, 0xfde0, 0xfde1,
80
+ 0xfde2, 0xfde3, 0xfde4, 0xfde5, 0xfde6, 0xfde7, 0xfde8, 0xfde9, 0xfdea,
81
+ 0xfdeb, 0xfdec, 0xfded, 0xfdee, 0xfdef,
82
+ # others
83
+ 0xb, 0xfffe, 0xffff, 0x1fffe, 0x1ffff, 0x2fffe, 0x2ffff, 0x3fffe, 0x3ffff,
84
+ 0x4fffe, 0x4ffff, 0x5fffe, 0x5ffff, 0x6fffe, 0x6ffff, 0x7fffe, 0x7ffff,
85
+ 0x8fffe, 0x8ffff, 0x9fffe, 0x9ffff, 0xafffe, 0xaffff, 0xbfffe, 0xbffff,
86
+ 0xcfffe, 0xcffff, 0xdfffe, 0xdffff, 0xefffe, 0xeffff, 0xffffe, 0xfffff,
87
+ 0x10fffe, 0x10ffff
88
+ }
89
+
90
+
91
+ def _replace_charref(s):
92
+ s = s.group(1)
93
+ if s[0] == '#':
94
+ # numeric charref
95
+ if s[1] in 'xX':
96
+ num = int(s[2:].rstrip(';'), 16)
97
+ else:
98
+ num = int(s[1:].rstrip(';'))
99
+ if num in _invalid_charrefs:
100
+ return _invalid_charrefs[num]
101
+ if 0xD800 <= num <= 0xDFFF or num > 0x10FFFF:
102
+ return '\uFFFD'
103
+ if num in _invalid_codepoints:
104
+ return ''
105
+ return chr(num)
106
+ else:
107
+ # named charref
108
+ if s in _html5:
109
+ return _html5[s]
110
+ # find the longest matching name (as defined by the standard)
111
+ for x in range(len(s)-1, 1, -1):
112
+ if s[:x] in _html5:
113
+ return _html5[s[:x]] + s[x:]
114
+ else:
115
+ return '&' + s
116
+
117
+
118
+ _charref = _re.compile(r'&(#[0-9]+;?'
119
+ r'|#[xX][0-9a-fA-F]+;?'
120
+ r'|[^\t\n\f <&#;]{1,32};?)')
121
+
122
+ def unescape(s):
123
+ """
124
+ Convert all named and numeric character references (e.g. &gt;, &#62;,
125
+ &x3e;) in the string s to the corresponding unicode characters.
126
+ This function uses the rules defined by the HTML 5 standard
127
+ for both valid and invalid character references, and the list of
128
+ HTML 5 named character references defined in html.entities.html5.
129
+ """
130
+ if '&' not in s:
131
+ return s
132
+ return _charref.sub(_replace_charref, s)
my_container_sandbox/workspace/anaconda3/lib/python3.8/html/entities.py ADDED
@@ -0,0 +1,2509 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """HTML character entity references."""
2
+
3
+ __all__ = ['html5', 'name2codepoint', 'codepoint2name', 'entitydefs']
4
+
5
+
6
+ # maps the HTML entity name to the Unicode code point
7
+ name2codepoint = {
8
+ 'AElig': 0x00c6, # latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1
9
+ 'Aacute': 0x00c1, # latin capital letter A with acute, U+00C1 ISOlat1
10
+ 'Acirc': 0x00c2, # latin capital letter A with circumflex, U+00C2 ISOlat1
11
+ 'Agrave': 0x00c0, # latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1
12
+ 'Alpha': 0x0391, # greek capital letter alpha, U+0391
13
+ 'Aring': 0x00c5, # latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1
14
+ 'Atilde': 0x00c3, # latin capital letter A with tilde, U+00C3 ISOlat1
15
+ 'Auml': 0x00c4, # latin capital letter A with diaeresis, U+00C4 ISOlat1
16
+ 'Beta': 0x0392, # greek capital letter beta, U+0392
17
+ 'Ccedil': 0x00c7, # latin capital letter C with cedilla, U+00C7 ISOlat1
18
+ 'Chi': 0x03a7, # greek capital letter chi, U+03A7
19
+ 'Dagger': 0x2021, # double dagger, U+2021 ISOpub
20
+ 'Delta': 0x0394, # greek capital letter delta, U+0394 ISOgrk3
21
+ 'ETH': 0x00d0, # latin capital letter ETH, U+00D0 ISOlat1
22
+ 'Eacute': 0x00c9, # latin capital letter E with acute, U+00C9 ISOlat1
23
+ 'Ecirc': 0x00ca, # latin capital letter E with circumflex, U+00CA ISOlat1
24
+ 'Egrave': 0x00c8, # latin capital letter E with grave, U+00C8 ISOlat1
25
+ 'Epsilon': 0x0395, # greek capital letter epsilon, U+0395
26
+ 'Eta': 0x0397, # greek capital letter eta, U+0397
27
+ 'Euml': 0x00cb, # latin capital letter E with diaeresis, U+00CB ISOlat1
28
+ 'Gamma': 0x0393, # greek capital letter gamma, U+0393 ISOgrk3
29
+ 'Iacute': 0x00cd, # latin capital letter I with acute, U+00CD ISOlat1
30
+ 'Icirc': 0x00ce, # latin capital letter I with circumflex, U+00CE ISOlat1
31
+ 'Igrave': 0x00cc, # latin capital letter I with grave, U+00CC ISOlat1
32
+ 'Iota': 0x0399, # greek capital letter iota, U+0399
33
+ 'Iuml': 0x00cf, # latin capital letter I with diaeresis, U+00CF ISOlat1
34
+ 'Kappa': 0x039a, # greek capital letter kappa, U+039A
35
+ 'Lambda': 0x039b, # greek capital letter lambda, U+039B ISOgrk3
36
+ 'Mu': 0x039c, # greek capital letter mu, U+039C
37
+ 'Ntilde': 0x00d1, # latin capital letter N with tilde, U+00D1 ISOlat1
38
+ 'Nu': 0x039d, # greek capital letter nu, U+039D
39
+ 'OElig': 0x0152, # latin capital ligature OE, U+0152 ISOlat2
40
+ 'Oacute': 0x00d3, # latin capital letter O with acute, U+00D3 ISOlat1
41
+ 'Ocirc': 0x00d4, # latin capital letter O with circumflex, U+00D4 ISOlat1
42
+ 'Ograve': 0x00d2, # latin capital letter O with grave, U+00D2 ISOlat1
43
+ 'Omega': 0x03a9, # greek capital letter omega, U+03A9 ISOgrk3
44
+ 'Omicron': 0x039f, # greek capital letter omicron, U+039F
45
+ 'Oslash': 0x00d8, # latin capital letter O with stroke = latin capital letter O slash, U+00D8 ISOlat1
46
+ 'Otilde': 0x00d5, # latin capital letter O with tilde, U+00D5 ISOlat1
47
+ 'Ouml': 0x00d6, # latin capital letter O with diaeresis, U+00D6 ISOlat1
48
+ 'Phi': 0x03a6, # greek capital letter phi, U+03A6 ISOgrk3
49
+ 'Pi': 0x03a0, # greek capital letter pi, U+03A0 ISOgrk3
50
+ 'Prime': 0x2033, # double prime = seconds = inches, U+2033 ISOtech
51
+ 'Psi': 0x03a8, # greek capital letter psi, U+03A8 ISOgrk3
52
+ 'Rho': 0x03a1, # greek capital letter rho, U+03A1
53
+ 'Scaron': 0x0160, # latin capital letter S with caron, U+0160 ISOlat2
54
+ 'Sigma': 0x03a3, # greek capital letter sigma, U+03A3 ISOgrk3
55
+ 'THORN': 0x00de, # latin capital letter THORN, U+00DE ISOlat1
56
+ 'Tau': 0x03a4, # greek capital letter tau, U+03A4
57
+ 'Theta': 0x0398, # greek capital letter theta, U+0398 ISOgrk3
58
+ 'Uacute': 0x00da, # latin capital letter U with acute, U+00DA ISOlat1
59
+ 'Ucirc': 0x00db, # latin capital letter U with circumflex, U+00DB ISOlat1
60
+ 'Ugrave': 0x00d9, # latin capital letter U with grave, U+00D9 ISOlat1
61
+ 'Upsilon': 0x03a5, # greek capital letter upsilon, U+03A5 ISOgrk3
62
+ 'Uuml': 0x00dc, # latin capital letter U with diaeresis, U+00DC ISOlat1
63
+ 'Xi': 0x039e, # greek capital letter xi, U+039E ISOgrk3
64
+ 'Yacute': 0x00dd, # latin capital letter Y with acute, U+00DD ISOlat1
65
+ 'Yuml': 0x0178, # latin capital letter Y with diaeresis, U+0178 ISOlat2
66
+ 'Zeta': 0x0396, # greek capital letter zeta, U+0396
67
+ 'aacute': 0x00e1, # latin small letter a with acute, U+00E1 ISOlat1
68
+ 'acirc': 0x00e2, # latin small letter a with circumflex, U+00E2 ISOlat1
69
+ 'acute': 0x00b4, # acute accent = spacing acute, U+00B4 ISOdia
70
+ 'aelig': 0x00e6, # latin small letter ae = latin small ligature ae, U+00E6 ISOlat1
71
+ 'agrave': 0x00e0, # latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1
72
+ 'alefsym': 0x2135, # alef symbol = first transfinite cardinal, U+2135 NEW
73
+ 'alpha': 0x03b1, # greek small letter alpha, U+03B1 ISOgrk3
74
+ 'amp': 0x0026, # ampersand, U+0026 ISOnum
75
+ 'and': 0x2227, # logical and = wedge, U+2227 ISOtech
76
+ 'ang': 0x2220, # angle, U+2220 ISOamso
77
+ 'aring': 0x00e5, # latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1
78
+ 'asymp': 0x2248, # almost equal to = asymptotic to, U+2248 ISOamsr
79
+ 'atilde': 0x00e3, # latin small letter a with tilde, U+00E3 ISOlat1
80
+ 'auml': 0x00e4, # latin small letter a with diaeresis, U+00E4 ISOlat1
81
+ 'bdquo': 0x201e, # double low-9 quotation mark, U+201E NEW
82
+ 'beta': 0x03b2, # greek small letter beta, U+03B2 ISOgrk3
83
+ 'brvbar': 0x00a6, # broken bar = broken vertical bar, U+00A6 ISOnum
84
+ 'bull': 0x2022, # bullet = black small circle, U+2022 ISOpub
85
+ 'cap': 0x2229, # intersection = cap, U+2229 ISOtech
86
+ 'ccedil': 0x00e7, # latin small letter c with cedilla, U+00E7 ISOlat1
87
+ 'cedil': 0x00b8, # cedilla = spacing cedilla, U+00B8 ISOdia
88
+ 'cent': 0x00a2, # cent sign, U+00A2 ISOnum
89
+ 'chi': 0x03c7, # greek small letter chi, U+03C7 ISOgrk3
90
+ 'circ': 0x02c6, # modifier letter circumflex accent, U+02C6 ISOpub
91
+ 'clubs': 0x2663, # black club suit = shamrock, U+2663 ISOpub
92
+ 'cong': 0x2245, # approximately equal to, U+2245 ISOtech
93
+ 'copy': 0x00a9, # copyright sign, U+00A9 ISOnum
94
+ 'crarr': 0x21b5, # downwards arrow with corner leftwards = carriage return, U+21B5 NEW
95
+ 'cup': 0x222a, # union = cup, U+222A ISOtech
96
+ 'curren': 0x00a4, # currency sign, U+00A4 ISOnum
97
+ 'dArr': 0x21d3, # downwards double arrow, U+21D3 ISOamsa
98
+ 'dagger': 0x2020, # dagger, U+2020 ISOpub
99
+ 'darr': 0x2193, # downwards arrow, U+2193 ISOnum
100
+ 'deg': 0x00b0, # degree sign, U+00B0 ISOnum
101
+ 'delta': 0x03b4, # greek small letter delta, U+03B4 ISOgrk3
102
+ 'diams': 0x2666, # black diamond suit, U+2666 ISOpub
103
+ 'divide': 0x00f7, # division sign, U+00F7 ISOnum
104
+ 'eacute': 0x00e9, # latin small letter e with acute, U+00E9 ISOlat1
105
+ 'ecirc': 0x00ea, # latin small letter e with circumflex, U+00EA ISOlat1
106
+ 'egrave': 0x00e8, # latin small letter e with grave, U+00E8 ISOlat1
107
+ 'empty': 0x2205, # empty set = null set = diameter, U+2205 ISOamso
108
+ 'emsp': 0x2003, # em space, U+2003 ISOpub
109
+ 'ensp': 0x2002, # en space, U+2002 ISOpub
110
+ 'epsilon': 0x03b5, # greek small letter epsilon, U+03B5 ISOgrk3
111
+ 'equiv': 0x2261, # identical to, U+2261 ISOtech
112
+ 'eta': 0x03b7, # greek small letter eta, U+03B7 ISOgrk3
113
+ 'eth': 0x00f0, # latin small letter eth, U+00F0 ISOlat1
114
+ 'euml': 0x00eb, # latin small letter e with diaeresis, U+00EB ISOlat1
115
+ 'euro': 0x20ac, # euro sign, U+20AC NEW
116
+ 'exist': 0x2203, # there exists, U+2203 ISOtech
117
+ 'fnof': 0x0192, # latin small f with hook = function = florin, U+0192 ISOtech
118
+ 'forall': 0x2200, # for all, U+2200 ISOtech
119
+ 'frac12': 0x00bd, # vulgar fraction one half = fraction one half, U+00BD ISOnum
120
+ 'frac14': 0x00bc, # vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum
121
+ 'frac34': 0x00be, # vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum
122
+ 'frasl': 0x2044, # fraction slash, U+2044 NEW
123
+ 'gamma': 0x03b3, # greek small letter gamma, U+03B3 ISOgrk3
124
+ 'ge': 0x2265, # greater-than or equal to, U+2265 ISOtech
125
+ 'gt': 0x003e, # greater-than sign, U+003E ISOnum
126
+ 'hArr': 0x21d4, # left right double arrow, U+21D4 ISOamsa
127
+ 'harr': 0x2194, # left right arrow, U+2194 ISOamsa
128
+ 'hearts': 0x2665, # black heart suit = valentine, U+2665 ISOpub
129
+ 'hellip': 0x2026, # horizontal ellipsis = three dot leader, U+2026 ISOpub
130
+ 'iacute': 0x00ed, # latin small letter i with acute, U+00ED ISOlat1
131
+ 'icirc': 0x00ee, # latin small letter i with circumflex, U+00EE ISOlat1
132
+ 'iexcl': 0x00a1, # inverted exclamation mark, U+00A1 ISOnum
133
+ 'igrave': 0x00ec, # latin small letter i with grave, U+00EC ISOlat1
134
+ 'image': 0x2111, # blackletter capital I = imaginary part, U+2111 ISOamso
135
+ 'infin': 0x221e, # infinity, U+221E ISOtech
136
+ 'int': 0x222b, # integral, U+222B ISOtech
137
+ 'iota': 0x03b9, # greek small letter iota, U+03B9 ISOgrk3
138
+ 'iquest': 0x00bf, # inverted question mark = turned question mark, U+00BF ISOnum
139
+ 'isin': 0x2208, # element of, U+2208 ISOtech
140
+ 'iuml': 0x00ef, # latin small letter i with diaeresis, U+00EF ISOlat1
141
+ 'kappa': 0x03ba, # greek small letter kappa, U+03BA ISOgrk3
142
+ 'lArr': 0x21d0, # leftwards double arrow, U+21D0 ISOtech
143
+ 'lambda': 0x03bb, # greek small letter lambda, U+03BB ISOgrk3
144
+ 'lang': 0x2329, # left-pointing angle bracket = bra, U+2329 ISOtech
145
+ 'laquo': 0x00ab, # left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum
146
+ 'larr': 0x2190, # leftwards arrow, U+2190 ISOnum
147
+ 'lceil': 0x2308, # left ceiling = apl upstile, U+2308 ISOamsc
148
+ 'ldquo': 0x201c, # left double quotation mark, U+201C ISOnum
149
+ 'le': 0x2264, # less-than or equal to, U+2264 ISOtech
150
+ 'lfloor': 0x230a, # left floor = apl downstile, U+230A ISOamsc
151
+ 'lowast': 0x2217, # asterisk operator, U+2217 ISOtech
152
+ 'loz': 0x25ca, # lozenge, U+25CA ISOpub
153
+ 'lrm': 0x200e, # left-to-right mark, U+200E NEW RFC 2070
154
+ 'lsaquo': 0x2039, # single left-pointing angle quotation mark, U+2039 ISO proposed
155
+ 'lsquo': 0x2018, # left single quotation mark, U+2018 ISOnum
156
+ 'lt': 0x003c, # less-than sign, U+003C ISOnum
157
+ 'macr': 0x00af, # macron = spacing macron = overline = APL overbar, U+00AF ISOdia
158
+ 'mdash': 0x2014, # em dash, U+2014 ISOpub
159
+ 'micro': 0x00b5, # micro sign, U+00B5 ISOnum
160
+ 'middot': 0x00b7, # middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum
161
+ 'minus': 0x2212, # minus sign, U+2212 ISOtech
162
+ 'mu': 0x03bc, # greek small letter mu, U+03BC ISOgrk3
163
+ 'nabla': 0x2207, # nabla = backward difference, U+2207 ISOtech
164
+ 'nbsp': 0x00a0, # no-break space = non-breaking space, U+00A0 ISOnum
165
+ 'ndash': 0x2013, # en dash, U+2013 ISOpub
166
+ 'ne': 0x2260, # not equal to, U+2260 ISOtech
167
+ 'ni': 0x220b, # contains as member, U+220B ISOtech
168
+ 'not': 0x00ac, # not sign, U+00AC ISOnum
169
+ 'notin': 0x2209, # not an element of, U+2209 ISOtech
170
+ 'nsub': 0x2284, # not a subset of, U+2284 ISOamsn
171
+ 'ntilde': 0x00f1, # latin small letter n with tilde, U+00F1 ISOlat1
172
+ 'nu': 0x03bd, # greek small letter nu, U+03BD ISOgrk3
173
+ 'oacute': 0x00f3, # latin small letter o with acute, U+00F3 ISOlat1
174
+ 'ocirc': 0x00f4, # latin small letter o with circumflex, U+00F4 ISOlat1
175
+ 'oelig': 0x0153, # latin small ligature oe, U+0153 ISOlat2
176
+ 'ograve': 0x00f2, # latin small letter o with grave, U+00F2 ISOlat1
177
+ 'oline': 0x203e, # overline = spacing overscore, U+203E NEW
178
+ 'omega': 0x03c9, # greek small letter omega, U+03C9 ISOgrk3
179
+ 'omicron': 0x03bf, # greek small letter omicron, U+03BF NEW
180
+ 'oplus': 0x2295, # circled plus = direct sum, U+2295 ISOamsb
181
+ 'or': 0x2228, # logical or = vee, U+2228 ISOtech
182
+ 'ordf': 0x00aa, # feminine ordinal indicator, U+00AA ISOnum
183
+ 'ordm': 0x00ba, # masculine ordinal indicator, U+00BA ISOnum
184
+ 'oslash': 0x00f8, # latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1
185
+ 'otilde': 0x00f5, # latin small letter o with tilde, U+00F5 ISOlat1
186
+ 'otimes': 0x2297, # circled times = vector product, U+2297 ISOamsb
187
+ 'ouml': 0x00f6, # latin small letter o with diaeresis, U+00F6 ISOlat1
188
+ 'para': 0x00b6, # pilcrow sign = paragraph sign, U+00B6 ISOnum
189
+ 'part': 0x2202, # partial differential, U+2202 ISOtech
190
+ 'permil': 0x2030, # per mille sign, U+2030 ISOtech
191
+ 'perp': 0x22a5, # up tack = orthogonal to = perpendicular, U+22A5 ISOtech
192
+ 'phi': 0x03c6, # greek small letter phi, U+03C6 ISOgrk3
193
+ 'pi': 0x03c0, # greek small letter pi, U+03C0 ISOgrk3
194
+ 'piv': 0x03d6, # greek pi symbol, U+03D6 ISOgrk3
195
+ 'plusmn': 0x00b1, # plus-minus sign = plus-or-minus sign, U+00B1 ISOnum
196
+ 'pound': 0x00a3, # pound sign, U+00A3 ISOnum
197
+ 'prime': 0x2032, # prime = minutes = feet, U+2032 ISOtech
198
+ 'prod': 0x220f, # n-ary product = product sign, U+220F ISOamsb
199
+ 'prop': 0x221d, # proportional to, U+221D ISOtech
200
+ 'psi': 0x03c8, # greek small letter psi, U+03C8 ISOgrk3
201
+ 'quot': 0x0022, # quotation mark = APL quote, U+0022 ISOnum
202
+ 'rArr': 0x21d2, # rightwards double arrow, U+21D2 ISOtech
203
+ 'radic': 0x221a, # square root = radical sign, U+221A ISOtech
204
+ 'rang': 0x232a, # right-pointing angle bracket = ket, U+232A ISOtech
205
+ 'raquo': 0x00bb, # right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum
206
+ 'rarr': 0x2192, # rightwards arrow, U+2192 ISOnum
207
+ 'rceil': 0x2309, # right ceiling, U+2309 ISOamsc
208
+ 'rdquo': 0x201d, # right double quotation mark, U+201D ISOnum
209
+ 'real': 0x211c, # blackletter capital R = real part symbol, U+211C ISOamso
210
+ 'reg': 0x00ae, # registered sign = registered trade mark sign, U+00AE ISOnum
211
+ 'rfloor': 0x230b, # right floor, U+230B ISOamsc
212
+ 'rho': 0x03c1, # greek small letter rho, U+03C1 ISOgrk3
213
+ 'rlm': 0x200f, # right-to-left mark, U+200F NEW RFC 2070
214
+ 'rsaquo': 0x203a, # single right-pointing angle quotation mark, U+203A ISO proposed
215
+ 'rsquo': 0x2019, # right single quotation mark, U+2019 ISOnum
216
+ 'sbquo': 0x201a, # single low-9 quotation mark, U+201A NEW
217
+ 'scaron': 0x0161, # latin small letter s with caron, U+0161 ISOlat2
218
+ 'sdot': 0x22c5, # dot operator, U+22C5 ISOamsb
219
+ 'sect': 0x00a7, # section sign, U+00A7 ISOnum
220
+ 'shy': 0x00ad, # soft hyphen = discretionary hyphen, U+00AD ISOnum
221
+ 'sigma': 0x03c3, # greek small letter sigma, U+03C3 ISOgrk3
222
+ 'sigmaf': 0x03c2, # greek small letter final sigma, U+03C2 ISOgrk3
223
+ 'sim': 0x223c, # tilde operator = varies with = similar to, U+223C ISOtech
224
+ 'spades': 0x2660, # black spade suit, U+2660 ISOpub
225
+ 'sub': 0x2282, # subset of, U+2282 ISOtech
226
+ 'sube': 0x2286, # subset of or equal to, U+2286 ISOtech
227
+ 'sum': 0x2211, # n-ary summation, U+2211 ISOamsb
228
+ 'sup': 0x2283, # superset of, U+2283 ISOtech
229
+ 'sup1': 0x00b9, # superscript one = superscript digit one, U+00B9 ISOnum
230
+ 'sup2': 0x00b2, # superscript two = superscript digit two = squared, U+00B2 ISOnum
231
+ 'sup3': 0x00b3, # superscript three = superscript digit three = cubed, U+00B3 ISOnum
232
+ 'supe': 0x2287, # superset of or equal to, U+2287 ISOtech
233
+ 'szlig': 0x00df, # latin small letter sharp s = ess-zed, U+00DF ISOlat1
234
+ 'tau': 0x03c4, # greek small letter tau, U+03C4 ISOgrk3
235
+ 'there4': 0x2234, # therefore, U+2234 ISOtech
236
+ 'theta': 0x03b8, # greek small letter theta, U+03B8 ISOgrk3
237
+ 'thetasym': 0x03d1, # greek small letter theta symbol, U+03D1 NEW
238
+ 'thinsp': 0x2009, # thin space, U+2009 ISOpub
239
+ 'thorn': 0x00fe, # latin small letter thorn with, U+00FE ISOlat1
240
+ 'tilde': 0x02dc, # small tilde, U+02DC ISOdia
241
+ 'times': 0x00d7, # multiplication sign, U+00D7 ISOnum
242
+ 'trade': 0x2122, # trade mark sign, U+2122 ISOnum
243
+ 'uArr': 0x21d1, # upwards double arrow, U+21D1 ISOamsa
244
+ 'uacute': 0x00fa, # latin small letter u with acute, U+00FA ISOlat1
245
+ 'uarr': 0x2191, # upwards arrow, U+2191 ISOnum
246
+ 'ucirc': 0x00fb, # latin small letter u with circumflex, U+00FB ISOlat1
247
+ 'ugrave': 0x00f9, # latin small letter u with grave, U+00F9 ISOlat1
248
+ 'uml': 0x00a8, # diaeresis = spacing diaeresis, U+00A8 ISOdia
249
+ 'upsih': 0x03d2, # greek upsilon with hook symbol, U+03D2 NEW
250
+ 'upsilon': 0x03c5, # greek small letter upsilon, U+03C5 ISOgrk3
251
+ 'uuml': 0x00fc, # latin small letter u with diaeresis, U+00FC ISOlat1
252
+ 'weierp': 0x2118, # script capital P = power set = Weierstrass p, U+2118 ISOamso
253
+ 'xi': 0x03be, # greek small letter xi, U+03BE ISOgrk3
254
+ 'yacute': 0x00fd, # latin small letter y with acute, U+00FD ISOlat1
255
+ 'yen': 0x00a5, # yen sign = yuan sign, U+00A5 ISOnum
256
+ 'yuml': 0x00ff, # latin small letter y with diaeresis, U+00FF ISOlat1
257
+ 'zeta': 0x03b6, # greek small letter zeta, U+03B6 ISOgrk3
258
+ 'zwj': 0x200d, # zero width joiner, U+200D NEW RFC 2070
259
+ 'zwnj': 0x200c, # zero width non-joiner, U+200C NEW RFC 2070
260
+ }
261
+
262
+
263
+ # maps the HTML5 named character references to the equivalent Unicode character(s)
264
+ html5 = {
265
+ 'Aacute': '\xc1',
266
+ 'aacute': '\xe1',
267
+ 'Aacute;': '\xc1',
268
+ 'aacute;': '\xe1',
269
+ 'Abreve;': '\u0102',
270
+ 'abreve;': '\u0103',
271
+ 'ac;': '\u223e',
272
+ 'acd;': '\u223f',
273
+ 'acE;': '\u223e\u0333',
274
+ 'Acirc': '\xc2',
275
+ 'acirc': '\xe2',
276
+ 'Acirc;': '\xc2',
277
+ 'acirc;': '\xe2',
278
+ 'acute': '\xb4',
279
+ 'acute;': '\xb4',
280
+ 'Acy;': '\u0410',
281
+ 'acy;': '\u0430',
282
+ 'AElig': '\xc6',
283
+ 'aelig': '\xe6',
284
+ 'AElig;': '\xc6',
285
+ 'aelig;': '\xe6',
286
+ 'af;': '\u2061',
287
+ 'Afr;': '\U0001d504',
288
+ 'afr;': '\U0001d51e',
289
+ 'Agrave': '\xc0',
290
+ 'agrave': '\xe0',
291
+ 'Agrave;': '\xc0',
292
+ 'agrave;': '\xe0',
293
+ 'alefsym;': '\u2135',
294
+ 'aleph;': '\u2135',
295
+ 'Alpha;': '\u0391',
296
+ 'alpha;': '\u03b1',
297
+ 'Amacr;': '\u0100',
298
+ 'amacr;': '\u0101',
299
+ 'amalg;': '\u2a3f',
300
+ 'AMP': '&',
301
+ 'amp': '&',
302
+ 'AMP;': '&',
303
+ 'amp;': '&',
304
+ 'And;': '\u2a53',
305
+ 'and;': '\u2227',
306
+ 'andand;': '\u2a55',
307
+ 'andd;': '\u2a5c',
308
+ 'andslope;': '\u2a58',
309
+ 'andv;': '\u2a5a',
310
+ 'ang;': '\u2220',
311
+ 'ange;': '\u29a4',
312
+ 'angle;': '\u2220',
313
+ 'angmsd;': '\u2221',
314
+ 'angmsdaa;': '\u29a8',
315
+ 'angmsdab;': '\u29a9',
316
+ 'angmsdac;': '\u29aa',
317
+ 'angmsdad;': '\u29ab',
318
+ 'angmsdae;': '\u29ac',
319
+ 'angmsdaf;': '\u29ad',
320
+ 'angmsdag;': '\u29ae',
321
+ 'angmsdah;': '\u29af',
322
+ 'angrt;': '\u221f',
323
+ 'angrtvb;': '\u22be',
324
+ 'angrtvbd;': '\u299d',
325
+ 'angsph;': '\u2222',
326
+ 'angst;': '\xc5',
327
+ 'angzarr;': '\u237c',
328
+ 'Aogon;': '\u0104',
329
+ 'aogon;': '\u0105',
330
+ 'Aopf;': '\U0001d538',
331
+ 'aopf;': '\U0001d552',
332
+ 'ap;': '\u2248',
333
+ 'apacir;': '\u2a6f',
334
+ 'apE;': '\u2a70',
335
+ 'ape;': '\u224a',
336
+ 'apid;': '\u224b',
337
+ 'apos;': "'",
338
+ 'ApplyFunction;': '\u2061',
339
+ 'approx;': '\u2248',
340
+ 'approxeq;': '\u224a',
341
+ 'Aring': '\xc5',
342
+ 'aring': '\xe5',
343
+ 'Aring;': '\xc5',
344
+ 'aring;': '\xe5',
345
+ 'Ascr;': '\U0001d49c',
346
+ 'ascr;': '\U0001d4b6',
347
+ 'Assign;': '\u2254',
348
+ 'ast;': '*',
349
+ 'asymp;': '\u2248',
350
+ 'asympeq;': '\u224d',
351
+ 'Atilde': '\xc3',
352
+ 'atilde': '\xe3',
353
+ 'Atilde;': '\xc3',
354
+ 'atilde;': '\xe3',
355
+ 'Auml': '\xc4',
356
+ 'auml': '\xe4',
357
+ 'Auml;': '\xc4',
358
+ 'auml;': '\xe4',
359
+ 'awconint;': '\u2233',
360
+ 'awint;': '\u2a11',
361
+ 'backcong;': '\u224c',
362
+ 'backepsilon;': '\u03f6',
363
+ 'backprime;': '\u2035',
364
+ 'backsim;': '\u223d',
365
+ 'backsimeq;': '\u22cd',
366
+ 'Backslash;': '\u2216',
367
+ 'Barv;': '\u2ae7',
368
+ 'barvee;': '\u22bd',
369
+ 'Barwed;': '\u2306',
370
+ 'barwed;': '\u2305',
371
+ 'barwedge;': '\u2305',
372
+ 'bbrk;': '\u23b5',
373
+ 'bbrktbrk;': '\u23b6',
374
+ 'bcong;': '\u224c',
375
+ 'Bcy;': '\u0411',
376
+ 'bcy;': '\u0431',
377
+ 'bdquo;': '\u201e',
378
+ 'becaus;': '\u2235',
379
+ 'Because;': '\u2235',
380
+ 'because;': '\u2235',
381
+ 'bemptyv;': '\u29b0',
382
+ 'bepsi;': '\u03f6',
383
+ 'bernou;': '\u212c',
384
+ 'Bernoullis;': '\u212c',
385
+ 'Beta;': '\u0392',
386
+ 'beta;': '\u03b2',
387
+ 'beth;': '\u2136',
388
+ 'between;': '\u226c',
389
+ 'Bfr;': '\U0001d505',
390
+ 'bfr;': '\U0001d51f',
391
+ 'bigcap;': '\u22c2',
392
+ 'bigcirc;': '\u25ef',
393
+ 'bigcup;': '\u22c3',
394
+ 'bigodot;': '\u2a00',
395
+ 'bigoplus;': '\u2a01',
396
+ 'bigotimes;': '\u2a02',
397
+ 'bigsqcup;': '\u2a06',
398
+ 'bigstar;': '\u2605',
399
+ 'bigtriangledown;': '\u25bd',
400
+ 'bigtriangleup;': '\u25b3',
401
+ 'biguplus;': '\u2a04',
402
+ 'bigvee;': '\u22c1',
403
+ 'bigwedge;': '\u22c0',
404
+ 'bkarow;': '\u290d',
405
+ 'blacklozenge;': '\u29eb',
406
+ 'blacksquare;': '\u25aa',
407
+ 'blacktriangle;': '\u25b4',
408
+ 'blacktriangledown;': '\u25be',
409
+ 'blacktriangleleft;': '\u25c2',
410
+ 'blacktriangleright;': '\u25b8',
411
+ 'blank;': '\u2423',
412
+ 'blk12;': '\u2592',
413
+ 'blk14;': '\u2591',
414
+ 'blk34;': '\u2593',
415
+ 'block;': '\u2588',
416
+ 'bne;': '=\u20e5',
417
+ 'bnequiv;': '\u2261\u20e5',
418
+ 'bNot;': '\u2aed',
419
+ 'bnot;': '\u2310',
420
+ 'Bopf;': '\U0001d539',
421
+ 'bopf;': '\U0001d553',
422
+ 'bot;': '\u22a5',
423
+ 'bottom;': '\u22a5',
424
+ 'bowtie;': '\u22c8',
425
+ 'boxbox;': '\u29c9',
426
+ 'boxDL;': '\u2557',
427
+ 'boxDl;': '\u2556',
428
+ 'boxdL;': '\u2555',
429
+ 'boxdl;': '\u2510',
430
+ 'boxDR;': '\u2554',
431
+ 'boxDr;': '\u2553',
432
+ 'boxdR;': '\u2552',
433
+ 'boxdr;': '\u250c',
434
+ 'boxH;': '\u2550',
435
+ 'boxh;': '\u2500',
436
+ 'boxHD;': '\u2566',
437
+ 'boxHd;': '\u2564',
438
+ 'boxhD;': '\u2565',
439
+ 'boxhd;': '\u252c',
440
+ 'boxHU;': '\u2569',
441
+ 'boxHu;': '\u2567',
442
+ 'boxhU;': '\u2568',
443
+ 'boxhu;': '\u2534',
444
+ 'boxminus;': '\u229f',
445
+ 'boxplus;': '\u229e',
446
+ 'boxtimes;': '\u22a0',
447
+ 'boxUL;': '\u255d',
448
+ 'boxUl;': '\u255c',
449
+ 'boxuL;': '\u255b',
450
+ 'boxul;': '\u2518',
451
+ 'boxUR;': '\u255a',
452
+ 'boxUr;': '\u2559',
453
+ 'boxuR;': '\u2558',
454
+ 'boxur;': '\u2514',
455
+ 'boxV;': '\u2551',
456
+ 'boxv;': '\u2502',
457
+ 'boxVH;': '\u256c',
458
+ 'boxVh;': '\u256b',
459
+ 'boxvH;': '\u256a',
460
+ 'boxvh;': '\u253c',
461
+ 'boxVL;': '\u2563',
462
+ 'boxVl;': '\u2562',
463
+ 'boxvL;': '\u2561',
464
+ 'boxvl;': '\u2524',
465
+ 'boxVR;': '\u2560',
466
+ 'boxVr;': '\u255f',
467
+ 'boxvR;': '\u255e',
468
+ 'boxvr;': '\u251c',
469
+ 'bprime;': '\u2035',
470
+ 'Breve;': '\u02d8',
471
+ 'breve;': '\u02d8',
472
+ 'brvbar': '\xa6',
473
+ 'brvbar;': '\xa6',
474
+ 'Bscr;': '\u212c',
475
+ 'bscr;': '\U0001d4b7',
476
+ 'bsemi;': '\u204f',
477
+ 'bsim;': '\u223d',
478
+ 'bsime;': '\u22cd',
479
+ 'bsol;': '\\',
480
+ 'bsolb;': '\u29c5',
481
+ 'bsolhsub;': '\u27c8',
482
+ 'bull;': '\u2022',
483
+ 'bullet;': '\u2022',
484
+ 'bump;': '\u224e',
485
+ 'bumpE;': '\u2aae',
486
+ 'bumpe;': '\u224f',
487
+ 'Bumpeq;': '\u224e',
488
+ 'bumpeq;': '\u224f',
489
+ 'Cacute;': '\u0106',
490
+ 'cacute;': '\u0107',
491
+ 'Cap;': '\u22d2',
492
+ 'cap;': '\u2229',
493
+ 'capand;': '\u2a44',
494
+ 'capbrcup;': '\u2a49',
495
+ 'capcap;': '\u2a4b',
496
+ 'capcup;': '\u2a47',
497
+ 'capdot;': '\u2a40',
498
+ 'CapitalDifferentialD;': '\u2145',
499
+ 'caps;': '\u2229\ufe00',
500
+ 'caret;': '\u2041',
501
+ 'caron;': '\u02c7',
502
+ 'Cayleys;': '\u212d',
503
+ 'ccaps;': '\u2a4d',
504
+ 'Ccaron;': '\u010c',
505
+ 'ccaron;': '\u010d',
506
+ 'Ccedil': '\xc7',
507
+ 'ccedil': '\xe7',
508
+ 'Ccedil;': '\xc7',
509
+ 'ccedil;': '\xe7',
510
+ 'Ccirc;': '\u0108',
511
+ 'ccirc;': '\u0109',
512
+ 'Cconint;': '\u2230',
513
+ 'ccups;': '\u2a4c',
514
+ 'ccupssm;': '\u2a50',
515
+ 'Cdot;': '\u010a',
516
+ 'cdot;': '\u010b',
517
+ 'cedil': '\xb8',
518
+ 'cedil;': '\xb8',
519
+ 'Cedilla;': '\xb8',
520
+ 'cemptyv;': '\u29b2',
521
+ 'cent': '\xa2',
522
+ 'cent;': '\xa2',
523
+ 'CenterDot;': '\xb7',
524
+ 'centerdot;': '\xb7',
525
+ 'Cfr;': '\u212d',
526
+ 'cfr;': '\U0001d520',
527
+ 'CHcy;': '\u0427',
528
+ 'chcy;': '\u0447',
529
+ 'check;': '\u2713',
530
+ 'checkmark;': '\u2713',
531
+ 'Chi;': '\u03a7',
532
+ 'chi;': '\u03c7',
533
+ 'cir;': '\u25cb',
534
+ 'circ;': '\u02c6',
535
+ 'circeq;': '\u2257',
536
+ 'circlearrowleft;': '\u21ba',
537
+ 'circlearrowright;': '\u21bb',
538
+ 'circledast;': '\u229b',
539
+ 'circledcirc;': '\u229a',
540
+ 'circleddash;': '\u229d',
541
+ 'CircleDot;': '\u2299',
542
+ 'circledR;': '\xae',
543
+ 'circledS;': '\u24c8',
544
+ 'CircleMinus;': '\u2296',
545
+ 'CirclePlus;': '\u2295',
546
+ 'CircleTimes;': '\u2297',
547
+ 'cirE;': '\u29c3',
548
+ 'cire;': '\u2257',
549
+ 'cirfnint;': '\u2a10',
550
+ 'cirmid;': '\u2aef',
551
+ 'cirscir;': '\u29c2',
552
+ 'ClockwiseContourIntegral;': '\u2232',
553
+ 'CloseCurlyDoubleQuote;': '\u201d',
554
+ 'CloseCurlyQuote;': '\u2019',
555
+ 'clubs;': '\u2663',
556
+ 'clubsuit;': '\u2663',
557
+ 'Colon;': '\u2237',
558
+ 'colon;': ':',
559
+ 'Colone;': '\u2a74',
560
+ 'colone;': '\u2254',
561
+ 'coloneq;': '\u2254',
562
+ 'comma;': ',',
563
+ 'commat;': '@',
564
+ 'comp;': '\u2201',
565
+ 'compfn;': '\u2218',
566
+ 'complement;': '\u2201',
567
+ 'complexes;': '\u2102',
568
+ 'cong;': '\u2245',
569
+ 'congdot;': '\u2a6d',
570
+ 'Congruent;': '\u2261',
571
+ 'Conint;': '\u222f',
572
+ 'conint;': '\u222e',
573
+ 'ContourIntegral;': '\u222e',
574
+ 'Copf;': '\u2102',
575
+ 'copf;': '\U0001d554',
576
+ 'coprod;': '\u2210',
577
+ 'Coproduct;': '\u2210',
578
+ 'COPY': '\xa9',
579
+ 'copy': '\xa9',
580
+ 'COPY;': '\xa9',
581
+ 'copy;': '\xa9',
582
+ 'copysr;': '\u2117',
583
+ 'CounterClockwiseContourIntegral;': '\u2233',
584
+ 'crarr;': '\u21b5',
585
+ 'Cross;': '\u2a2f',
586
+ 'cross;': '\u2717',
587
+ 'Cscr;': '\U0001d49e',
588
+ 'cscr;': '\U0001d4b8',
589
+ 'csub;': '\u2acf',
590
+ 'csube;': '\u2ad1',
591
+ 'csup;': '\u2ad0',
592
+ 'csupe;': '\u2ad2',
593
+ 'ctdot;': '\u22ef',
594
+ 'cudarrl;': '\u2938',
595
+ 'cudarrr;': '\u2935',
596
+ 'cuepr;': '\u22de',
597
+ 'cuesc;': '\u22df',
598
+ 'cularr;': '\u21b6',
599
+ 'cularrp;': '\u293d',
600
+ 'Cup;': '\u22d3',
601
+ 'cup;': '\u222a',
602
+ 'cupbrcap;': '\u2a48',
603
+ 'CupCap;': '\u224d',
604
+ 'cupcap;': '\u2a46',
605
+ 'cupcup;': '\u2a4a',
606
+ 'cupdot;': '\u228d',
607
+ 'cupor;': '\u2a45',
608
+ 'cups;': '\u222a\ufe00',
609
+ 'curarr;': '\u21b7',
610
+ 'curarrm;': '\u293c',
611
+ 'curlyeqprec;': '\u22de',
612
+ 'curlyeqsucc;': '\u22df',
613
+ 'curlyvee;': '\u22ce',
614
+ 'curlywedge;': '\u22cf',
615
+ 'curren': '\xa4',
616
+ 'curren;': '\xa4',
617
+ 'curvearrowleft;': '\u21b6',
618
+ 'curvearrowright;': '\u21b7',
619
+ 'cuvee;': '\u22ce',
620
+ 'cuwed;': '\u22cf',
621
+ 'cwconint;': '\u2232',
622
+ 'cwint;': '\u2231',
623
+ 'cylcty;': '\u232d',
624
+ 'Dagger;': '\u2021',
625
+ 'dagger;': '\u2020',
626
+ 'daleth;': '\u2138',
627
+ 'Darr;': '\u21a1',
628
+ 'dArr;': '\u21d3',
629
+ 'darr;': '\u2193',
630
+ 'dash;': '\u2010',
631
+ 'Dashv;': '\u2ae4',
632
+ 'dashv;': '\u22a3',
633
+ 'dbkarow;': '\u290f',
634
+ 'dblac;': '\u02dd',
635
+ 'Dcaron;': '\u010e',
636
+ 'dcaron;': '\u010f',
637
+ 'Dcy;': '\u0414',
638
+ 'dcy;': '\u0434',
639
+ 'DD;': '\u2145',
640
+ 'dd;': '\u2146',
641
+ 'ddagger;': '\u2021',
642
+ 'ddarr;': '\u21ca',
643
+ 'DDotrahd;': '\u2911',
644
+ 'ddotseq;': '\u2a77',
645
+ 'deg': '\xb0',
646
+ 'deg;': '\xb0',
647
+ 'Del;': '\u2207',
648
+ 'Delta;': '\u0394',
649
+ 'delta;': '\u03b4',
650
+ 'demptyv;': '\u29b1',
651
+ 'dfisht;': '\u297f',
652
+ 'Dfr;': '\U0001d507',
653
+ 'dfr;': '\U0001d521',
654
+ 'dHar;': '\u2965',
655
+ 'dharl;': '\u21c3',
656
+ 'dharr;': '\u21c2',
657
+ 'DiacriticalAcute;': '\xb4',
658
+ 'DiacriticalDot;': '\u02d9',
659
+ 'DiacriticalDoubleAcute;': '\u02dd',
660
+ 'DiacriticalGrave;': '`',
661
+ 'DiacriticalTilde;': '\u02dc',
662
+ 'diam;': '\u22c4',
663
+ 'Diamond;': '\u22c4',
664
+ 'diamond;': '\u22c4',
665
+ 'diamondsuit;': '\u2666',
666
+ 'diams;': '\u2666',
667
+ 'die;': '\xa8',
668
+ 'DifferentialD;': '\u2146',
669
+ 'digamma;': '\u03dd',
670
+ 'disin;': '\u22f2',
671
+ 'div;': '\xf7',
672
+ 'divide': '\xf7',
673
+ 'divide;': '\xf7',
674
+ 'divideontimes;': '\u22c7',
675
+ 'divonx;': '\u22c7',
676
+ 'DJcy;': '\u0402',
677
+ 'djcy;': '\u0452',
678
+ 'dlcorn;': '\u231e',
679
+ 'dlcrop;': '\u230d',
680
+ 'dollar;': '$',
681
+ 'Dopf;': '\U0001d53b',
682
+ 'dopf;': '\U0001d555',
683
+ 'Dot;': '\xa8',
684
+ 'dot;': '\u02d9',
685
+ 'DotDot;': '\u20dc',
686
+ 'doteq;': '\u2250',
687
+ 'doteqdot;': '\u2251',
688
+ 'DotEqual;': '\u2250',
689
+ 'dotminus;': '\u2238',
690
+ 'dotplus;': '\u2214',
691
+ 'dotsquare;': '\u22a1',
692
+ 'doublebarwedge;': '\u2306',
693
+ 'DoubleContourIntegral;': '\u222f',
694
+ 'DoubleDot;': '\xa8',
695
+ 'DoubleDownArrow;': '\u21d3',
696
+ 'DoubleLeftArrow;': '\u21d0',
697
+ 'DoubleLeftRightArrow;': '\u21d4',
698
+ 'DoubleLeftTee;': '\u2ae4',
699
+ 'DoubleLongLeftArrow;': '\u27f8',
700
+ 'DoubleLongLeftRightArrow;': '\u27fa',
701
+ 'DoubleLongRightArrow;': '\u27f9',
702
+ 'DoubleRightArrow;': '\u21d2',
703
+ 'DoubleRightTee;': '\u22a8',
704
+ 'DoubleUpArrow;': '\u21d1',
705
+ 'DoubleUpDownArrow;': '\u21d5',
706
+ 'DoubleVerticalBar;': '\u2225',
707
+ 'DownArrow;': '\u2193',
708
+ 'Downarrow;': '\u21d3',
709
+ 'downarrow;': '\u2193',
710
+ 'DownArrowBar;': '\u2913',
711
+ 'DownArrowUpArrow;': '\u21f5',
712
+ 'DownBreve;': '\u0311',
713
+ 'downdownarrows;': '\u21ca',
714
+ 'downharpoonleft;': '\u21c3',
715
+ 'downharpoonright;': '\u21c2',
716
+ 'DownLeftRightVector;': '\u2950',
717
+ 'DownLeftTeeVector;': '\u295e',
718
+ 'DownLeftVector;': '\u21bd',
719
+ 'DownLeftVectorBar;': '\u2956',
720
+ 'DownRightTeeVector;': '\u295f',
721
+ 'DownRightVector;': '\u21c1',
722
+ 'DownRightVectorBar;': '\u2957',
723
+ 'DownTee;': '\u22a4',
724
+ 'DownTeeArrow;': '\u21a7',
725
+ 'drbkarow;': '\u2910',
726
+ 'drcorn;': '\u231f',
727
+ 'drcrop;': '\u230c',
728
+ 'Dscr;': '\U0001d49f',
729
+ 'dscr;': '\U0001d4b9',
730
+ 'DScy;': '\u0405',
731
+ 'dscy;': '\u0455',
732
+ 'dsol;': '\u29f6',
733
+ 'Dstrok;': '\u0110',
734
+ 'dstrok;': '\u0111',
735
+ 'dtdot;': '\u22f1',
736
+ 'dtri;': '\u25bf',
737
+ 'dtrif;': '\u25be',
738
+ 'duarr;': '\u21f5',
739
+ 'duhar;': '\u296f',
740
+ 'dwangle;': '\u29a6',
741
+ 'DZcy;': '\u040f',
742
+ 'dzcy;': '\u045f',
743
+ 'dzigrarr;': '\u27ff',
744
+ 'Eacute': '\xc9',
745
+ 'eacute': '\xe9',
746
+ 'Eacute;': '\xc9',
747
+ 'eacute;': '\xe9',
748
+ 'easter;': '\u2a6e',
749
+ 'Ecaron;': '\u011a',
750
+ 'ecaron;': '\u011b',
751
+ 'ecir;': '\u2256',
752
+ 'Ecirc': '\xca',
753
+ 'ecirc': '\xea',
754
+ 'Ecirc;': '\xca',
755
+ 'ecirc;': '\xea',
756
+ 'ecolon;': '\u2255',
757
+ 'Ecy;': '\u042d',
758
+ 'ecy;': '\u044d',
759
+ 'eDDot;': '\u2a77',
760
+ 'Edot;': '\u0116',
761
+ 'eDot;': '\u2251',
762
+ 'edot;': '\u0117',
763
+ 'ee;': '\u2147',
764
+ 'efDot;': '\u2252',
765
+ 'Efr;': '\U0001d508',
766
+ 'efr;': '\U0001d522',
767
+ 'eg;': '\u2a9a',
768
+ 'Egrave': '\xc8',
769
+ 'egrave': '\xe8',
770
+ 'Egrave;': '\xc8',
771
+ 'egrave;': '\xe8',
772
+ 'egs;': '\u2a96',
773
+ 'egsdot;': '\u2a98',
774
+ 'el;': '\u2a99',
775
+ 'Element;': '\u2208',
776
+ 'elinters;': '\u23e7',
777
+ 'ell;': '\u2113',
778
+ 'els;': '\u2a95',
779
+ 'elsdot;': '\u2a97',
780
+ 'Emacr;': '\u0112',
781
+ 'emacr;': '\u0113',
782
+ 'empty;': '\u2205',
783
+ 'emptyset;': '\u2205',
784
+ 'EmptySmallSquare;': '\u25fb',
785
+ 'emptyv;': '\u2205',
786
+ 'EmptyVerySmallSquare;': '\u25ab',
787
+ 'emsp13;': '\u2004',
788
+ 'emsp14;': '\u2005',
789
+ 'emsp;': '\u2003',
790
+ 'ENG;': '\u014a',
791
+ 'eng;': '\u014b',
792
+ 'ensp;': '\u2002',
793
+ 'Eogon;': '\u0118',
794
+ 'eogon;': '\u0119',
795
+ 'Eopf;': '\U0001d53c',
796
+ 'eopf;': '\U0001d556',
797
+ 'epar;': '\u22d5',
798
+ 'eparsl;': '\u29e3',
799
+ 'eplus;': '\u2a71',
800
+ 'epsi;': '\u03b5',
801
+ 'Epsilon;': '\u0395',
802
+ 'epsilon;': '\u03b5',
803
+ 'epsiv;': '\u03f5',
804
+ 'eqcirc;': '\u2256',
805
+ 'eqcolon;': '\u2255',
806
+ 'eqsim;': '\u2242',
807
+ 'eqslantgtr;': '\u2a96',
808
+ 'eqslantless;': '\u2a95',
809
+ 'Equal;': '\u2a75',
810
+ 'equals;': '=',
811
+ 'EqualTilde;': '\u2242',
812
+ 'equest;': '\u225f',
813
+ 'Equilibrium;': '\u21cc',
814
+ 'equiv;': '\u2261',
815
+ 'equivDD;': '\u2a78',
816
+ 'eqvparsl;': '\u29e5',
817
+ 'erarr;': '\u2971',
818
+ 'erDot;': '\u2253',
819
+ 'Escr;': '\u2130',
820
+ 'escr;': '\u212f',
821
+ 'esdot;': '\u2250',
822
+ 'Esim;': '\u2a73',
823
+ 'esim;': '\u2242',
824
+ 'Eta;': '\u0397',
825
+ 'eta;': '\u03b7',
826
+ 'ETH': '\xd0',
827
+ 'eth': '\xf0',
828
+ 'ETH;': '\xd0',
829
+ 'eth;': '\xf0',
830
+ 'Euml': '\xcb',
831
+ 'euml': '\xeb',
832
+ 'Euml;': '\xcb',
833
+ 'euml;': '\xeb',
834
+ 'euro;': '\u20ac',
835
+ 'excl;': '!',
836
+ 'exist;': '\u2203',
837
+ 'Exists;': '\u2203',
838
+ 'expectation;': '\u2130',
839
+ 'ExponentialE;': '\u2147',
840
+ 'exponentiale;': '\u2147',
841
+ 'fallingdotseq;': '\u2252',
842
+ 'Fcy;': '\u0424',
843
+ 'fcy;': '\u0444',
844
+ 'female;': '\u2640',
845
+ 'ffilig;': '\ufb03',
846
+ 'fflig;': '\ufb00',
847
+ 'ffllig;': '\ufb04',
848
+ 'Ffr;': '\U0001d509',
849
+ 'ffr;': '\U0001d523',
850
+ 'filig;': '\ufb01',
851
+ 'FilledSmallSquare;': '\u25fc',
852
+ 'FilledVerySmallSquare;': '\u25aa',
853
+ 'fjlig;': 'fj',
854
+ 'flat;': '\u266d',
855
+ 'fllig;': '\ufb02',
856
+ 'fltns;': '\u25b1',
857
+ 'fnof;': '\u0192',
858
+ 'Fopf;': '\U0001d53d',
859
+ 'fopf;': '\U0001d557',
860
+ 'ForAll;': '\u2200',
861
+ 'forall;': '\u2200',
862
+ 'fork;': '\u22d4',
863
+ 'forkv;': '\u2ad9',
864
+ 'Fouriertrf;': '\u2131',
865
+ 'fpartint;': '\u2a0d',
866
+ 'frac12': '\xbd',
867
+ 'frac12;': '\xbd',
868
+ 'frac13;': '\u2153',
869
+ 'frac14': '\xbc',
870
+ 'frac14;': '\xbc',
871
+ 'frac15;': '\u2155',
872
+ 'frac16;': '\u2159',
873
+ 'frac18;': '\u215b',
874
+ 'frac23;': '\u2154',
875
+ 'frac25;': '\u2156',
876
+ 'frac34': '\xbe',
877
+ 'frac34;': '\xbe',
878
+ 'frac35;': '\u2157',
879
+ 'frac38;': '\u215c',
880
+ 'frac45;': '\u2158',
881
+ 'frac56;': '\u215a',
882
+ 'frac58;': '\u215d',
883
+ 'frac78;': '\u215e',
884
+ 'frasl;': '\u2044',
885
+ 'frown;': '\u2322',
886
+ 'Fscr;': '\u2131',
887
+ 'fscr;': '\U0001d4bb',
888
+ 'gacute;': '\u01f5',
889
+ 'Gamma;': '\u0393',
890
+ 'gamma;': '\u03b3',
891
+ 'Gammad;': '\u03dc',
892
+ 'gammad;': '\u03dd',
893
+ 'gap;': '\u2a86',
894
+ 'Gbreve;': '\u011e',
895
+ 'gbreve;': '\u011f',
896
+ 'Gcedil;': '\u0122',
897
+ 'Gcirc;': '\u011c',
898
+ 'gcirc;': '\u011d',
899
+ 'Gcy;': '\u0413',
900
+ 'gcy;': '\u0433',
901
+ 'Gdot;': '\u0120',
902
+ 'gdot;': '\u0121',
903
+ 'gE;': '\u2267',
904
+ 'ge;': '\u2265',
905
+ 'gEl;': '\u2a8c',
906
+ 'gel;': '\u22db',
907
+ 'geq;': '\u2265',
908
+ 'geqq;': '\u2267',
909
+ 'geqslant;': '\u2a7e',
910
+ 'ges;': '\u2a7e',
911
+ 'gescc;': '\u2aa9',
912
+ 'gesdot;': '\u2a80',
913
+ 'gesdoto;': '\u2a82',
914
+ 'gesdotol;': '\u2a84',
915
+ 'gesl;': '\u22db\ufe00',
916
+ 'gesles;': '\u2a94',
917
+ 'Gfr;': '\U0001d50a',
918
+ 'gfr;': '\U0001d524',
919
+ 'Gg;': '\u22d9',
920
+ 'gg;': '\u226b',
921
+ 'ggg;': '\u22d9',
922
+ 'gimel;': '\u2137',
923
+ 'GJcy;': '\u0403',
924
+ 'gjcy;': '\u0453',
925
+ 'gl;': '\u2277',
926
+ 'gla;': '\u2aa5',
927
+ 'glE;': '\u2a92',
928
+ 'glj;': '\u2aa4',
929
+ 'gnap;': '\u2a8a',
930
+ 'gnapprox;': '\u2a8a',
931
+ 'gnE;': '\u2269',
932
+ 'gne;': '\u2a88',
933
+ 'gneq;': '\u2a88',
934
+ 'gneqq;': '\u2269',
935
+ 'gnsim;': '\u22e7',
936
+ 'Gopf;': '\U0001d53e',
937
+ 'gopf;': '\U0001d558',
938
+ 'grave;': '`',
939
+ 'GreaterEqual;': '\u2265',
940
+ 'GreaterEqualLess;': '\u22db',
941
+ 'GreaterFullEqual;': '\u2267',
942
+ 'GreaterGreater;': '\u2aa2',
943
+ 'GreaterLess;': '\u2277',
944
+ 'GreaterSlantEqual;': '\u2a7e',
945
+ 'GreaterTilde;': '\u2273',
946
+ 'Gscr;': '\U0001d4a2',
947
+ 'gscr;': '\u210a',
948
+ 'gsim;': '\u2273',
949
+ 'gsime;': '\u2a8e',
950
+ 'gsiml;': '\u2a90',
951
+ 'GT': '>',
952
+ 'gt': '>',
953
+ 'GT;': '>',
954
+ 'Gt;': '\u226b',
955
+ 'gt;': '>',
956
+ 'gtcc;': '\u2aa7',
957
+ 'gtcir;': '\u2a7a',
958
+ 'gtdot;': '\u22d7',
959
+ 'gtlPar;': '\u2995',
960
+ 'gtquest;': '\u2a7c',
961
+ 'gtrapprox;': '\u2a86',
962
+ 'gtrarr;': '\u2978',
963
+ 'gtrdot;': '\u22d7',
964
+ 'gtreqless;': '\u22db',
965
+ 'gtreqqless;': '\u2a8c',
966
+ 'gtrless;': '\u2277',
967
+ 'gtrsim;': '\u2273',
968
+ 'gvertneqq;': '\u2269\ufe00',
969
+ 'gvnE;': '\u2269\ufe00',
970
+ 'Hacek;': '\u02c7',
971
+ 'hairsp;': '\u200a',
972
+ 'half;': '\xbd',
973
+ 'hamilt;': '\u210b',
974
+ 'HARDcy;': '\u042a',
975
+ 'hardcy;': '\u044a',
976
+ 'hArr;': '\u21d4',
977
+ 'harr;': '\u2194',
978
+ 'harrcir;': '\u2948',
979
+ 'harrw;': '\u21ad',
980
+ 'Hat;': '^',
981
+ 'hbar;': '\u210f',
982
+ 'Hcirc;': '\u0124',
983
+ 'hcirc;': '\u0125',
984
+ 'hearts;': '\u2665',
985
+ 'heartsuit;': '\u2665',
986
+ 'hellip;': '\u2026',
987
+ 'hercon;': '\u22b9',
988
+ 'Hfr;': '\u210c',
989
+ 'hfr;': '\U0001d525',
990
+ 'HilbertSpace;': '\u210b',
991
+ 'hksearow;': '\u2925',
992
+ 'hkswarow;': '\u2926',
993
+ 'hoarr;': '\u21ff',
994
+ 'homtht;': '\u223b',
995
+ 'hookleftarrow;': '\u21a9',
996
+ 'hookrightarrow;': '\u21aa',
997
+ 'Hopf;': '\u210d',
998
+ 'hopf;': '\U0001d559',
999
+ 'horbar;': '\u2015',
1000
+ 'HorizontalLine;': '\u2500',
1001
+ 'Hscr;': '\u210b',
1002
+ 'hscr;': '\U0001d4bd',
1003
+ 'hslash;': '\u210f',
1004
+ 'Hstrok;': '\u0126',
1005
+ 'hstrok;': '\u0127',
1006
+ 'HumpDownHump;': '\u224e',
1007
+ 'HumpEqual;': '\u224f',
1008
+ 'hybull;': '\u2043',
1009
+ 'hyphen;': '\u2010',
1010
+ 'Iacute': '\xcd',
1011
+ 'iacute': '\xed',
1012
+ 'Iacute;': '\xcd',
1013
+ 'iacute;': '\xed',
1014
+ 'ic;': '\u2063',
1015
+ 'Icirc': '\xce',
1016
+ 'icirc': '\xee',
1017
+ 'Icirc;': '\xce',
1018
+ 'icirc;': '\xee',
1019
+ 'Icy;': '\u0418',
1020
+ 'icy;': '\u0438',
1021
+ 'Idot;': '\u0130',
1022
+ 'IEcy;': '\u0415',
1023
+ 'iecy;': '\u0435',
1024
+ 'iexcl': '\xa1',
1025
+ 'iexcl;': '\xa1',
1026
+ 'iff;': '\u21d4',
1027
+ 'Ifr;': '\u2111',
1028
+ 'ifr;': '\U0001d526',
1029
+ 'Igrave': '\xcc',
1030
+ 'igrave': '\xec',
1031
+ 'Igrave;': '\xcc',
1032
+ 'igrave;': '\xec',
1033
+ 'ii;': '\u2148',
1034
+ 'iiiint;': '\u2a0c',
1035
+ 'iiint;': '\u222d',
1036
+ 'iinfin;': '\u29dc',
1037
+ 'iiota;': '\u2129',
1038
+ 'IJlig;': '\u0132',
1039
+ 'ijlig;': '\u0133',
1040
+ 'Im;': '\u2111',
1041
+ 'Imacr;': '\u012a',
1042
+ 'imacr;': '\u012b',
1043
+ 'image;': '\u2111',
1044
+ 'ImaginaryI;': '\u2148',
1045
+ 'imagline;': '\u2110',
1046
+ 'imagpart;': '\u2111',
1047
+ 'imath;': '\u0131',
1048
+ 'imof;': '\u22b7',
1049
+ 'imped;': '\u01b5',
1050
+ 'Implies;': '\u21d2',
1051
+ 'in;': '\u2208',
1052
+ 'incare;': '\u2105',
1053
+ 'infin;': '\u221e',
1054
+ 'infintie;': '\u29dd',
1055
+ 'inodot;': '\u0131',
1056
+ 'Int;': '\u222c',
1057
+ 'int;': '\u222b',
1058
+ 'intcal;': '\u22ba',
1059
+ 'integers;': '\u2124',
1060
+ 'Integral;': '\u222b',
1061
+ 'intercal;': '\u22ba',
1062
+ 'Intersection;': '\u22c2',
1063
+ 'intlarhk;': '\u2a17',
1064
+ 'intprod;': '\u2a3c',
1065
+ 'InvisibleComma;': '\u2063',
1066
+ 'InvisibleTimes;': '\u2062',
1067
+ 'IOcy;': '\u0401',
1068
+ 'iocy;': '\u0451',
1069
+ 'Iogon;': '\u012e',
1070
+ 'iogon;': '\u012f',
1071
+ 'Iopf;': '\U0001d540',
1072
+ 'iopf;': '\U0001d55a',
1073
+ 'Iota;': '\u0399',
1074
+ 'iota;': '\u03b9',
1075
+ 'iprod;': '\u2a3c',
1076
+ 'iquest': '\xbf',
1077
+ 'iquest;': '\xbf',
1078
+ 'Iscr;': '\u2110',
1079
+ 'iscr;': '\U0001d4be',
1080
+ 'isin;': '\u2208',
1081
+ 'isindot;': '\u22f5',
1082
+ 'isinE;': '\u22f9',
1083
+ 'isins;': '\u22f4',
1084
+ 'isinsv;': '\u22f3',
1085
+ 'isinv;': '\u2208',
1086
+ 'it;': '\u2062',
1087
+ 'Itilde;': '\u0128',
1088
+ 'itilde;': '\u0129',
1089
+ 'Iukcy;': '\u0406',
1090
+ 'iukcy;': '\u0456',
1091
+ 'Iuml': '\xcf',
1092
+ 'iuml': '\xef',
1093
+ 'Iuml;': '\xcf',
1094
+ 'iuml;': '\xef',
1095
+ 'Jcirc;': '\u0134',
1096
+ 'jcirc;': '\u0135',
1097
+ 'Jcy;': '\u0419',
1098
+ 'jcy;': '\u0439',
1099
+ 'Jfr;': '\U0001d50d',
1100
+ 'jfr;': '\U0001d527',
1101
+ 'jmath;': '\u0237',
1102
+ 'Jopf;': '\U0001d541',
1103
+ 'jopf;': '\U0001d55b',
1104
+ 'Jscr;': '\U0001d4a5',
1105
+ 'jscr;': '\U0001d4bf',
1106
+ 'Jsercy;': '\u0408',
1107
+ 'jsercy;': '\u0458',
1108
+ 'Jukcy;': '\u0404',
1109
+ 'jukcy;': '\u0454',
1110
+ 'Kappa;': '\u039a',
1111
+ 'kappa;': '\u03ba',
1112
+ 'kappav;': '\u03f0',
1113
+ 'Kcedil;': '\u0136',
1114
+ 'kcedil;': '\u0137',
1115
+ 'Kcy;': '\u041a',
1116
+ 'kcy;': '\u043a',
1117
+ 'Kfr;': '\U0001d50e',
1118
+ 'kfr;': '\U0001d528',
1119
+ 'kgreen;': '\u0138',
1120
+ 'KHcy;': '\u0425',
1121
+ 'khcy;': '\u0445',
1122
+ 'KJcy;': '\u040c',
1123
+ 'kjcy;': '\u045c',
1124
+ 'Kopf;': '\U0001d542',
1125
+ 'kopf;': '\U0001d55c',
1126
+ 'Kscr;': '\U0001d4a6',
1127
+ 'kscr;': '\U0001d4c0',
1128
+ 'lAarr;': '\u21da',
1129
+ 'Lacute;': '\u0139',
1130
+ 'lacute;': '\u013a',
1131
+ 'laemptyv;': '\u29b4',
1132
+ 'lagran;': '\u2112',
1133
+ 'Lambda;': '\u039b',
1134
+ 'lambda;': '\u03bb',
1135
+ 'Lang;': '\u27ea',
1136
+ 'lang;': '\u27e8',
1137
+ 'langd;': '\u2991',
1138
+ 'langle;': '\u27e8',
1139
+ 'lap;': '\u2a85',
1140
+ 'Laplacetrf;': '\u2112',
1141
+ 'laquo': '\xab',
1142
+ 'laquo;': '\xab',
1143
+ 'Larr;': '\u219e',
1144
+ 'lArr;': '\u21d0',
1145
+ 'larr;': '\u2190',
1146
+ 'larrb;': '\u21e4',
1147
+ 'larrbfs;': '\u291f',
1148
+ 'larrfs;': '\u291d',
1149
+ 'larrhk;': '\u21a9',
1150
+ 'larrlp;': '\u21ab',
1151
+ 'larrpl;': '\u2939',
1152
+ 'larrsim;': '\u2973',
1153
+ 'larrtl;': '\u21a2',
1154
+ 'lat;': '\u2aab',
1155
+ 'lAtail;': '\u291b',
1156
+ 'latail;': '\u2919',
1157
+ 'late;': '\u2aad',
1158
+ 'lates;': '\u2aad\ufe00',
1159
+ 'lBarr;': '\u290e',
1160
+ 'lbarr;': '\u290c',
1161
+ 'lbbrk;': '\u2772',
1162
+ 'lbrace;': '{',
1163
+ 'lbrack;': '[',
1164
+ 'lbrke;': '\u298b',
1165
+ 'lbrksld;': '\u298f',
1166
+ 'lbrkslu;': '\u298d',
1167
+ 'Lcaron;': '\u013d',
1168
+ 'lcaron;': '\u013e',
1169
+ 'Lcedil;': '\u013b',
1170
+ 'lcedil;': '\u013c',
1171
+ 'lceil;': '\u2308',
1172
+ 'lcub;': '{',
1173
+ 'Lcy;': '\u041b',
1174
+ 'lcy;': '\u043b',
1175
+ 'ldca;': '\u2936',
1176
+ 'ldquo;': '\u201c',
1177
+ 'ldquor;': '\u201e',
1178
+ 'ldrdhar;': '\u2967',
1179
+ 'ldrushar;': '\u294b',
1180
+ 'ldsh;': '\u21b2',
1181
+ 'lE;': '\u2266',
1182
+ 'le;': '\u2264',
1183
+ 'LeftAngleBracket;': '\u27e8',
1184
+ 'LeftArrow;': '\u2190',
1185
+ 'Leftarrow;': '\u21d0',
1186
+ 'leftarrow;': '\u2190',
1187
+ 'LeftArrowBar;': '\u21e4',
1188
+ 'LeftArrowRightArrow;': '\u21c6',
1189
+ 'leftarrowtail;': '\u21a2',
1190
+ 'LeftCeiling;': '\u2308',
1191
+ 'LeftDoubleBracket;': '\u27e6',
1192
+ 'LeftDownTeeVector;': '\u2961',
1193
+ 'LeftDownVector;': '\u21c3',
1194
+ 'LeftDownVectorBar;': '\u2959',
1195
+ 'LeftFloor;': '\u230a',
1196
+ 'leftharpoondown;': '\u21bd',
1197
+ 'leftharpoonup;': '\u21bc',
1198
+ 'leftleftarrows;': '\u21c7',
1199
+ 'LeftRightArrow;': '\u2194',
1200
+ 'Leftrightarrow;': '\u21d4',
1201
+ 'leftrightarrow;': '\u2194',
1202
+ 'leftrightarrows;': '\u21c6',
1203
+ 'leftrightharpoons;': '\u21cb',
1204
+ 'leftrightsquigarrow;': '\u21ad',
1205
+ 'LeftRightVector;': '\u294e',
1206
+ 'LeftTee;': '\u22a3',
1207
+ 'LeftTeeArrow;': '\u21a4',
1208
+ 'LeftTeeVector;': '\u295a',
1209
+ 'leftthreetimes;': '\u22cb',
1210
+ 'LeftTriangle;': '\u22b2',
1211
+ 'LeftTriangleBar;': '\u29cf',
1212
+ 'LeftTriangleEqual;': '\u22b4',
1213
+ 'LeftUpDownVector;': '\u2951',
1214
+ 'LeftUpTeeVector;': '\u2960',
1215
+ 'LeftUpVector;': '\u21bf',
1216
+ 'LeftUpVectorBar;': '\u2958',
1217
+ 'LeftVector;': '\u21bc',
1218
+ 'LeftVectorBar;': '\u2952',
1219
+ 'lEg;': '\u2a8b',
1220
+ 'leg;': '\u22da',
1221
+ 'leq;': '\u2264',
1222
+ 'leqq;': '\u2266',
1223
+ 'leqslant;': '\u2a7d',
1224
+ 'les;': '\u2a7d',
1225
+ 'lescc;': '\u2aa8',
1226
+ 'lesdot;': '\u2a7f',
1227
+ 'lesdoto;': '\u2a81',
1228
+ 'lesdotor;': '\u2a83',
1229
+ 'lesg;': '\u22da\ufe00',
1230
+ 'lesges;': '\u2a93',
1231
+ 'lessapprox;': '\u2a85',
1232
+ 'lessdot;': '\u22d6',
1233
+ 'lesseqgtr;': '\u22da',
1234
+ 'lesseqqgtr;': '\u2a8b',
1235
+ 'LessEqualGreater;': '\u22da',
1236
+ 'LessFullEqual;': '\u2266',
1237
+ 'LessGreater;': '\u2276',
1238
+ 'lessgtr;': '\u2276',
1239
+ 'LessLess;': '\u2aa1',
1240
+ 'lesssim;': '\u2272',
1241
+ 'LessSlantEqual;': '\u2a7d',
1242
+ 'LessTilde;': '\u2272',
1243
+ 'lfisht;': '\u297c',
1244
+ 'lfloor;': '\u230a',
1245
+ 'Lfr;': '\U0001d50f',
1246
+ 'lfr;': '\U0001d529',
1247
+ 'lg;': '\u2276',
1248
+ 'lgE;': '\u2a91',
1249
+ 'lHar;': '\u2962',
1250
+ 'lhard;': '\u21bd',
1251
+ 'lharu;': '\u21bc',
1252
+ 'lharul;': '\u296a',
1253
+ 'lhblk;': '\u2584',
1254
+ 'LJcy;': '\u0409',
1255
+ 'ljcy;': '\u0459',
1256
+ 'Ll;': '\u22d8',
1257
+ 'll;': '\u226a',
1258
+ 'llarr;': '\u21c7',
1259
+ 'llcorner;': '\u231e',
1260
+ 'Lleftarrow;': '\u21da',
1261
+ 'llhard;': '\u296b',
1262
+ 'lltri;': '\u25fa',
1263
+ 'Lmidot;': '\u013f',
1264
+ 'lmidot;': '\u0140',
1265
+ 'lmoust;': '\u23b0',
1266
+ 'lmoustache;': '\u23b0',
1267
+ 'lnap;': '\u2a89',
1268
+ 'lnapprox;': '\u2a89',
1269
+ 'lnE;': '\u2268',
1270
+ 'lne;': '\u2a87',
1271
+ 'lneq;': '\u2a87',
1272
+ 'lneqq;': '\u2268',
1273
+ 'lnsim;': '\u22e6',
1274
+ 'loang;': '\u27ec',
1275
+ 'loarr;': '\u21fd',
1276
+ 'lobrk;': '\u27e6',
1277
+ 'LongLeftArrow;': '\u27f5',
1278
+ 'Longleftarrow;': '\u27f8',
1279
+ 'longleftarrow;': '\u27f5',
1280
+ 'LongLeftRightArrow;': '\u27f7',
1281
+ 'Longleftrightarrow;': '\u27fa',
1282
+ 'longleftrightarrow;': '\u27f7',
1283
+ 'longmapsto;': '\u27fc',
1284
+ 'LongRightArrow;': '\u27f6',
1285
+ 'Longrightarrow;': '\u27f9',
1286
+ 'longrightarrow;': '\u27f6',
1287
+ 'looparrowleft;': '\u21ab',
1288
+ 'looparrowright;': '\u21ac',
1289
+ 'lopar;': '\u2985',
1290
+ 'Lopf;': '\U0001d543',
1291
+ 'lopf;': '\U0001d55d',
1292
+ 'loplus;': '\u2a2d',
1293
+ 'lotimes;': '\u2a34',
1294
+ 'lowast;': '\u2217',
1295
+ 'lowbar;': '_',
1296
+ 'LowerLeftArrow;': '\u2199',
1297
+ 'LowerRightArrow;': '\u2198',
1298
+ 'loz;': '\u25ca',
1299
+ 'lozenge;': '\u25ca',
1300
+ 'lozf;': '\u29eb',
1301
+ 'lpar;': '(',
1302
+ 'lparlt;': '\u2993',
1303
+ 'lrarr;': '\u21c6',
1304
+ 'lrcorner;': '\u231f',
1305
+ 'lrhar;': '\u21cb',
1306
+ 'lrhard;': '\u296d',
1307
+ 'lrm;': '\u200e',
1308
+ 'lrtri;': '\u22bf',
1309
+ 'lsaquo;': '\u2039',
1310
+ 'Lscr;': '\u2112',
1311
+ 'lscr;': '\U0001d4c1',
1312
+ 'Lsh;': '\u21b0',
1313
+ 'lsh;': '\u21b0',
1314
+ 'lsim;': '\u2272',
1315
+ 'lsime;': '\u2a8d',
1316
+ 'lsimg;': '\u2a8f',
1317
+ 'lsqb;': '[',
1318
+ 'lsquo;': '\u2018',
1319
+ 'lsquor;': '\u201a',
1320
+ 'Lstrok;': '\u0141',
1321
+ 'lstrok;': '\u0142',
1322
+ 'LT': '<',
1323
+ 'lt': '<',
1324
+ 'LT;': '<',
1325
+ 'Lt;': '\u226a',
1326
+ 'lt;': '<',
1327
+ 'ltcc;': '\u2aa6',
1328
+ 'ltcir;': '\u2a79',
1329
+ 'ltdot;': '\u22d6',
1330
+ 'lthree;': '\u22cb',
1331
+ 'ltimes;': '\u22c9',
1332
+ 'ltlarr;': '\u2976',
1333
+ 'ltquest;': '\u2a7b',
1334
+ 'ltri;': '\u25c3',
1335
+ 'ltrie;': '\u22b4',
1336
+ 'ltrif;': '\u25c2',
1337
+ 'ltrPar;': '\u2996',
1338
+ 'lurdshar;': '\u294a',
1339
+ 'luruhar;': '\u2966',
1340
+ 'lvertneqq;': '\u2268\ufe00',
1341
+ 'lvnE;': '\u2268\ufe00',
1342
+ 'macr': '\xaf',
1343
+ 'macr;': '\xaf',
1344
+ 'male;': '\u2642',
1345
+ 'malt;': '\u2720',
1346
+ 'maltese;': '\u2720',
1347
+ 'Map;': '\u2905',
1348
+ 'map;': '\u21a6',
1349
+ 'mapsto;': '\u21a6',
1350
+ 'mapstodown;': '\u21a7',
1351
+ 'mapstoleft;': '\u21a4',
1352
+ 'mapstoup;': '\u21a5',
1353
+ 'marker;': '\u25ae',
1354
+ 'mcomma;': '\u2a29',
1355
+ 'Mcy;': '\u041c',
1356
+ 'mcy;': '\u043c',
1357
+ 'mdash;': '\u2014',
1358
+ 'mDDot;': '\u223a',
1359
+ 'measuredangle;': '\u2221',
1360
+ 'MediumSpace;': '\u205f',
1361
+ 'Mellintrf;': '\u2133',
1362
+ 'Mfr;': '\U0001d510',
1363
+ 'mfr;': '\U0001d52a',
1364
+ 'mho;': '\u2127',
1365
+ 'micro': '\xb5',
1366
+ 'micro;': '\xb5',
1367
+ 'mid;': '\u2223',
1368
+ 'midast;': '*',
1369
+ 'midcir;': '\u2af0',
1370
+ 'middot': '\xb7',
1371
+ 'middot;': '\xb7',
1372
+ 'minus;': '\u2212',
1373
+ 'minusb;': '\u229f',
1374
+ 'minusd;': '\u2238',
1375
+ 'minusdu;': '\u2a2a',
1376
+ 'MinusPlus;': '\u2213',
1377
+ 'mlcp;': '\u2adb',
1378
+ 'mldr;': '\u2026',
1379
+ 'mnplus;': '\u2213',
1380
+ 'models;': '\u22a7',
1381
+ 'Mopf;': '\U0001d544',
1382
+ 'mopf;': '\U0001d55e',
1383
+ 'mp;': '\u2213',
1384
+ 'Mscr;': '\u2133',
1385
+ 'mscr;': '\U0001d4c2',
1386
+ 'mstpos;': '\u223e',
1387
+ 'Mu;': '\u039c',
1388
+ 'mu;': '\u03bc',
1389
+ 'multimap;': '\u22b8',
1390
+ 'mumap;': '\u22b8',
1391
+ 'nabla;': '\u2207',
1392
+ 'Nacute;': '\u0143',
1393
+ 'nacute;': '\u0144',
1394
+ 'nang;': '\u2220\u20d2',
1395
+ 'nap;': '\u2249',
1396
+ 'napE;': '\u2a70\u0338',
1397
+ 'napid;': '\u224b\u0338',
1398
+ 'napos;': '\u0149',
1399
+ 'napprox;': '\u2249',
1400
+ 'natur;': '\u266e',
1401
+ 'natural;': '\u266e',
1402
+ 'naturals;': '\u2115',
1403
+ 'nbsp': '\xa0',
1404
+ 'nbsp;': '\xa0',
1405
+ 'nbump;': '\u224e\u0338',
1406
+ 'nbumpe;': '\u224f\u0338',
1407
+ 'ncap;': '\u2a43',
1408
+ 'Ncaron;': '\u0147',
1409
+ 'ncaron;': '\u0148',
1410
+ 'Ncedil;': '\u0145',
1411
+ 'ncedil;': '\u0146',
1412
+ 'ncong;': '\u2247',
1413
+ 'ncongdot;': '\u2a6d\u0338',
1414
+ 'ncup;': '\u2a42',
1415
+ 'Ncy;': '\u041d',
1416
+ 'ncy;': '\u043d',
1417
+ 'ndash;': '\u2013',
1418
+ 'ne;': '\u2260',
1419
+ 'nearhk;': '\u2924',
1420
+ 'neArr;': '\u21d7',
1421
+ 'nearr;': '\u2197',
1422
+ 'nearrow;': '\u2197',
1423
+ 'nedot;': '\u2250\u0338',
1424
+ 'NegativeMediumSpace;': '\u200b',
1425
+ 'NegativeThickSpace;': '\u200b',
1426
+ 'NegativeThinSpace;': '\u200b',
1427
+ 'NegativeVeryThinSpace;': '\u200b',
1428
+ 'nequiv;': '\u2262',
1429
+ 'nesear;': '\u2928',
1430
+ 'nesim;': '\u2242\u0338',
1431
+ 'NestedGreaterGreater;': '\u226b',
1432
+ 'NestedLessLess;': '\u226a',
1433
+ 'NewLine;': '\n',
1434
+ 'nexist;': '\u2204',
1435
+ 'nexists;': '\u2204',
1436
+ 'Nfr;': '\U0001d511',
1437
+ 'nfr;': '\U0001d52b',
1438
+ 'ngE;': '\u2267\u0338',
1439
+ 'nge;': '\u2271',
1440
+ 'ngeq;': '\u2271',
1441
+ 'ngeqq;': '\u2267\u0338',
1442
+ 'ngeqslant;': '\u2a7e\u0338',
1443
+ 'nges;': '\u2a7e\u0338',
1444
+ 'nGg;': '\u22d9\u0338',
1445
+ 'ngsim;': '\u2275',
1446
+ 'nGt;': '\u226b\u20d2',
1447
+ 'ngt;': '\u226f',
1448
+ 'ngtr;': '\u226f',
1449
+ 'nGtv;': '\u226b\u0338',
1450
+ 'nhArr;': '\u21ce',
1451
+ 'nharr;': '\u21ae',
1452
+ 'nhpar;': '\u2af2',
1453
+ 'ni;': '\u220b',
1454
+ 'nis;': '\u22fc',
1455
+ 'nisd;': '\u22fa',
1456
+ 'niv;': '\u220b',
1457
+ 'NJcy;': '\u040a',
1458
+ 'njcy;': '\u045a',
1459
+ 'nlArr;': '\u21cd',
1460
+ 'nlarr;': '\u219a',
1461
+ 'nldr;': '\u2025',
1462
+ 'nlE;': '\u2266\u0338',
1463
+ 'nle;': '\u2270',
1464
+ 'nLeftarrow;': '\u21cd',
1465
+ 'nleftarrow;': '\u219a',
1466
+ 'nLeftrightarrow;': '\u21ce',
1467
+ 'nleftrightarrow;': '\u21ae',
1468
+ 'nleq;': '\u2270',
1469
+ 'nleqq;': '\u2266\u0338',
1470
+ 'nleqslant;': '\u2a7d\u0338',
1471
+ 'nles;': '\u2a7d\u0338',
1472
+ 'nless;': '\u226e',
1473
+ 'nLl;': '\u22d8\u0338',
1474
+ 'nlsim;': '\u2274',
1475
+ 'nLt;': '\u226a\u20d2',
1476
+ 'nlt;': '\u226e',
1477
+ 'nltri;': '\u22ea',
1478
+ 'nltrie;': '\u22ec',
1479
+ 'nLtv;': '\u226a\u0338',
1480
+ 'nmid;': '\u2224',
1481
+ 'NoBreak;': '\u2060',
1482
+ 'NonBreakingSpace;': '\xa0',
1483
+ 'Nopf;': '\u2115',
1484
+ 'nopf;': '\U0001d55f',
1485
+ 'not': '\xac',
1486
+ 'Not;': '\u2aec',
1487
+ 'not;': '\xac',
1488
+ 'NotCongruent;': '\u2262',
1489
+ 'NotCupCap;': '\u226d',
1490
+ 'NotDoubleVerticalBar;': '\u2226',
1491
+ 'NotElement;': '\u2209',
1492
+ 'NotEqual;': '\u2260',
1493
+ 'NotEqualTilde;': '\u2242\u0338',
1494
+ 'NotExists;': '\u2204',
1495
+ 'NotGreater;': '\u226f',
1496
+ 'NotGreaterEqual;': '\u2271',
1497
+ 'NotGreaterFullEqual;': '\u2267\u0338',
1498
+ 'NotGreaterGreater;': '\u226b\u0338',
1499
+ 'NotGreaterLess;': '\u2279',
1500
+ 'NotGreaterSlantEqual;': '\u2a7e\u0338',
1501
+ 'NotGreaterTilde;': '\u2275',
1502
+ 'NotHumpDownHump;': '\u224e\u0338',
1503
+ 'NotHumpEqual;': '\u224f\u0338',
1504
+ 'notin;': '\u2209',
1505
+ 'notindot;': '\u22f5\u0338',
1506
+ 'notinE;': '\u22f9\u0338',
1507
+ 'notinva;': '\u2209',
1508
+ 'notinvb;': '\u22f7',
1509
+ 'notinvc;': '\u22f6',
1510
+ 'NotLeftTriangle;': '\u22ea',
1511
+ 'NotLeftTriangleBar;': '\u29cf\u0338',
1512
+ 'NotLeftTriangleEqual;': '\u22ec',
1513
+ 'NotLess;': '\u226e',
1514
+ 'NotLessEqual;': '\u2270',
1515
+ 'NotLessGreater;': '\u2278',
1516
+ 'NotLessLess;': '\u226a\u0338',
1517
+ 'NotLessSlantEqual;': '\u2a7d\u0338',
1518
+ 'NotLessTilde;': '\u2274',
1519
+ 'NotNestedGreaterGreater;': '\u2aa2\u0338',
1520
+ 'NotNestedLessLess;': '\u2aa1\u0338',
1521
+ 'notni;': '\u220c',
1522
+ 'notniva;': '\u220c',
1523
+ 'notnivb;': '\u22fe',
1524
+ 'notnivc;': '\u22fd',
1525
+ 'NotPrecedes;': '\u2280',
1526
+ 'NotPrecedesEqual;': '\u2aaf\u0338',
1527
+ 'NotPrecedesSlantEqual;': '\u22e0',
1528
+ 'NotReverseElement;': '\u220c',
1529
+ 'NotRightTriangle;': '\u22eb',
1530
+ 'NotRightTriangleBar;': '\u29d0\u0338',
1531
+ 'NotRightTriangleEqual;': '\u22ed',
1532
+ 'NotSquareSubset;': '\u228f\u0338',
1533
+ 'NotSquareSubsetEqual;': '\u22e2',
1534
+ 'NotSquareSuperset;': '\u2290\u0338',
1535
+ 'NotSquareSupersetEqual;': '\u22e3',
1536
+ 'NotSubset;': '\u2282\u20d2',
1537
+ 'NotSubsetEqual;': '\u2288',
1538
+ 'NotSucceeds;': '\u2281',
1539
+ 'NotSucceedsEqual;': '\u2ab0\u0338',
1540
+ 'NotSucceedsSlantEqual;': '\u22e1',
1541
+ 'NotSucceedsTilde;': '\u227f\u0338',
1542
+ 'NotSuperset;': '\u2283\u20d2',
1543
+ 'NotSupersetEqual;': '\u2289',
1544
+ 'NotTilde;': '\u2241',
1545
+ 'NotTildeEqual;': '\u2244',
1546
+ 'NotTildeFullEqual;': '\u2247',
1547
+ 'NotTildeTilde;': '\u2249',
1548
+ 'NotVerticalBar;': '\u2224',
1549
+ 'npar;': '\u2226',
1550
+ 'nparallel;': '\u2226',
1551
+ 'nparsl;': '\u2afd\u20e5',
1552
+ 'npart;': '\u2202\u0338',
1553
+ 'npolint;': '\u2a14',
1554
+ 'npr;': '\u2280',
1555
+ 'nprcue;': '\u22e0',
1556
+ 'npre;': '\u2aaf\u0338',
1557
+ 'nprec;': '\u2280',
1558
+ 'npreceq;': '\u2aaf\u0338',
1559
+ 'nrArr;': '\u21cf',
1560
+ 'nrarr;': '\u219b',
1561
+ 'nrarrc;': '\u2933\u0338',
1562
+ 'nrarrw;': '\u219d\u0338',
1563
+ 'nRightarrow;': '\u21cf',
1564
+ 'nrightarrow;': '\u219b',
1565
+ 'nrtri;': '\u22eb',
1566
+ 'nrtrie;': '\u22ed',
1567
+ 'nsc;': '\u2281',
1568
+ 'nsccue;': '\u22e1',
1569
+ 'nsce;': '\u2ab0\u0338',
1570
+ 'Nscr;': '\U0001d4a9',
1571
+ 'nscr;': '\U0001d4c3',
1572
+ 'nshortmid;': '\u2224',
1573
+ 'nshortparallel;': '\u2226',
1574
+ 'nsim;': '\u2241',
1575
+ 'nsime;': '\u2244',
1576
+ 'nsimeq;': '\u2244',
1577
+ 'nsmid;': '\u2224',
1578
+ 'nspar;': '\u2226',
1579
+ 'nsqsube;': '\u22e2',
1580
+ 'nsqsupe;': '\u22e3',
1581
+ 'nsub;': '\u2284',
1582
+ 'nsubE;': '\u2ac5\u0338',
1583
+ 'nsube;': '\u2288',
1584
+ 'nsubset;': '\u2282\u20d2',
1585
+ 'nsubseteq;': '\u2288',
1586
+ 'nsubseteqq;': '\u2ac5\u0338',
1587
+ 'nsucc;': '\u2281',
1588
+ 'nsucceq;': '\u2ab0\u0338',
1589
+ 'nsup;': '\u2285',
1590
+ 'nsupE;': '\u2ac6\u0338',
1591
+ 'nsupe;': '\u2289',
1592
+ 'nsupset;': '\u2283\u20d2',
1593
+ 'nsupseteq;': '\u2289',
1594
+ 'nsupseteqq;': '\u2ac6\u0338',
1595
+ 'ntgl;': '\u2279',
1596
+ 'Ntilde': '\xd1',
1597
+ 'ntilde': '\xf1',
1598
+ 'Ntilde;': '\xd1',
1599
+ 'ntilde;': '\xf1',
1600
+ 'ntlg;': '\u2278',
1601
+ 'ntriangleleft;': '\u22ea',
1602
+ 'ntrianglelefteq;': '\u22ec',
1603
+ 'ntriangleright;': '\u22eb',
1604
+ 'ntrianglerighteq;': '\u22ed',
1605
+ 'Nu;': '\u039d',
1606
+ 'nu;': '\u03bd',
1607
+ 'num;': '#',
1608
+ 'numero;': '\u2116',
1609
+ 'numsp;': '\u2007',
1610
+ 'nvap;': '\u224d\u20d2',
1611
+ 'nVDash;': '\u22af',
1612
+ 'nVdash;': '\u22ae',
1613
+ 'nvDash;': '\u22ad',
1614
+ 'nvdash;': '\u22ac',
1615
+ 'nvge;': '\u2265\u20d2',
1616
+ 'nvgt;': '>\u20d2',
1617
+ 'nvHarr;': '\u2904',
1618
+ 'nvinfin;': '\u29de',
1619
+ 'nvlArr;': '\u2902',
1620
+ 'nvle;': '\u2264\u20d2',
1621
+ 'nvlt;': '<\u20d2',
1622
+ 'nvltrie;': '\u22b4\u20d2',
1623
+ 'nvrArr;': '\u2903',
1624
+ 'nvrtrie;': '\u22b5\u20d2',
1625
+ 'nvsim;': '\u223c\u20d2',
1626
+ 'nwarhk;': '\u2923',
1627
+ 'nwArr;': '\u21d6',
1628
+ 'nwarr;': '\u2196',
1629
+ 'nwarrow;': '\u2196',
1630
+ 'nwnear;': '\u2927',
1631
+ 'Oacute': '\xd3',
1632
+ 'oacute': '\xf3',
1633
+ 'Oacute;': '\xd3',
1634
+ 'oacute;': '\xf3',
1635
+ 'oast;': '\u229b',
1636
+ 'ocir;': '\u229a',
1637
+ 'Ocirc': '\xd4',
1638
+ 'ocirc': '\xf4',
1639
+ 'Ocirc;': '\xd4',
1640
+ 'ocirc;': '\xf4',
1641
+ 'Ocy;': '\u041e',
1642
+ 'ocy;': '\u043e',
1643
+ 'odash;': '\u229d',
1644
+ 'Odblac;': '\u0150',
1645
+ 'odblac;': '\u0151',
1646
+ 'odiv;': '\u2a38',
1647
+ 'odot;': '\u2299',
1648
+ 'odsold;': '\u29bc',
1649
+ 'OElig;': '\u0152',
1650
+ 'oelig;': '\u0153',
1651
+ 'ofcir;': '\u29bf',
1652
+ 'Ofr;': '\U0001d512',
1653
+ 'ofr;': '\U0001d52c',
1654
+ 'ogon;': '\u02db',
1655
+ 'Ograve': '\xd2',
1656
+ 'ograve': '\xf2',
1657
+ 'Ograve;': '\xd2',
1658
+ 'ograve;': '\xf2',
1659
+ 'ogt;': '\u29c1',
1660
+ 'ohbar;': '\u29b5',
1661
+ 'ohm;': '\u03a9',
1662
+ 'oint;': '\u222e',
1663
+ 'olarr;': '\u21ba',
1664
+ 'olcir;': '\u29be',
1665
+ 'olcross;': '\u29bb',
1666
+ 'oline;': '\u203e',
1667
+ 'olt;': '\u29c0',
1668
+ 'Omacr;': '\u014c',
1669
+ 'omacr;': '\u014d',
1670
+ 'Omega;': '\u03a9',
1671
+ 'omega;': '\u03c9',
1672
+ 'Omicron;': '\u039f',
1673
+ 'omicron;': '\u03bf',
1674
+ 'omid;': '\u29b6',
1675
+ 'ominus;': '\u2296',
1676
+ 'Oopf;': '\U0001d546',
1677
+ 'oopf;': '\U0001d560',
1678
+ 'opar;': '\u29b7',
1679
+ 'OpenCurlyDoubleQuote;': '\u201c',
1680
+ 'OpenCurlyQuote;': '\u2018',
1681
+ 'operp;': '\u29b9',
1682
+ 'oplus;': '\u2295',
1683
+ 'Or;': '\u2a54',
1684
+ 'or;': '\u2228',
1685
+ 'orarr;': '\u21bb',
1686
+ 'ord;': '\u2a5d',
1687
+ 'order;': '\u2134',
1688
+ 'orderof;': '\u2134',
1689
+ 'ordf': '\xaa',
1690
+ 'ordf;': '\xaa',
1691
+ 'ordm': '\xba',
1692
+ 'ordm;': '\xba',
1693
+ 'origof;': '\u22b6',
1694
+ 'oror;': '\u2a56',
1695
+ 'orslope;': '\u2a57',
1696
+ 'orv;': '\u2a5b',
1697
+ 'oS;': '\u24c8',
1698
+ 'Oscr;': '\U0001d4aa',
1699
+ 'oscr;': '\u2134',
1700
+ 'Oslash': '\xd8',
1701
+ 'oslash': '\xf8',
1702
+ 'Oslash;': '\xd8',
1703
+ 'oslash;': '\xf8',
1704
+ 'osol;': '\u2298',
1705
+ 'Otilde': '\xd5',
1706
+ 'otilde': '\xf5',
1707
+ 'Otilde;': '\xd5',
1708
+ 'otilde;': '\xf5',
1709
+ 'Otimes;': '\u2a37',
1710
+ 'otimes;': '\u2297',
1711
+ 'otimesas;': '\u2a36',
1712
+ 'Ouml': '\xd6',
1713
+ 'ouml': '\xf6',
1714
+ 'Ouml;': '\xd6',
1715
+ 'ouml;': '\xf6',
1716
+ 'ovbar;': '\u233d',
1717
+ 'OverBar;': '\u203e',
1718
+ 'OverBrace;': '\u23de',
1719
+ 'OverBracket;': '\u23b4',
1720
+ 'OverParenthesis;': '\u23dc',
1721
+ 'par;': '\u2225',
1722
+ 'para': '\xb6',
1723
+ 'para;': '\xb6',
1724
+ 'parallel;': '\u2225',
1725
+ 'parsim;': '\u2af3',
1726
+ 'parsl;': '\u2afd',
1727
+ 'part;': '\u2202',
1728
+ 'PartialD;': '\u2202',
1729
+ 'Pcy;': '\u041f',
1730
+ 'pcy;': '\u043f',
1731
+ 'percnt;': '%',
1732
+ 'period;': '.',
1733
+ 'permil;': '\u2030',
1734
+ 'perp;': '\u22a5',
1735
+ 'pertenk;': '\u2031',
1736
+ 'Pfr;': '\U0001d513',
1737
+ 'pfr;': '\U0001d52d',
1738
+ 'Phi;': '\u03a6',
1739
+ 'phi;': '\u03c6',
1740
+ 'phiv;': '\u03d5',
1741
+ 'phmmat;': '\u2133',
1742
+ 'phone;': '\u260e',
1743
+ 'Pi;': '\u03a0',
1744
+ 'pi;': '\u03c0',
1745
+ 'pitchfork;': '\u22d4',
1746
+ 'piv;': '\u03d6',
1747
+ 'planck;': '\u210f',
1748
+ 'planckh;': '\u210e',
1749
+ 'plankv;': '\u210f',
1750
+ 'plus;': '+',
1751
+ 'plusacir;': '\u2a23',
1752
+ 'plusb;': '\u229e',
1753
+ 'pluscir;': '\u2a22',
1754
+ 'plusdo;': '\u2214',
1755
+ 'plusdu;': '\u2a25',
1756
+ 'pluse;': '\u2a72',
1757
+ 'PlusMinus;': '\xb1',
1758
+ 'plusmn': '\xb1',
1759
+ 'plusmn;': '\xb1',
1760
+ 'plussim;': '\u2a26',
1761
+ 'plustwo;': '\u2a27',
1762
+ 'pm;': '\xb1',
1763
+ 'Poincareplane;': '\u210c',
1764
+ 'pointint;': '\u2a15',
1765
+ 'Popf;': '\u2119',
1766
+ 'popf;': '\U0001d561',
1767
+ 'pound': '\xa3',
1768
+ 'pound;': '\xa3',
1769
+ 'Pr;': '\u2abb',
1770
+ 'pr;': '\u227a',
1771
+ 'prap;': '\u2ab7',
1772
+ 'prcue;': '\u227c',
1773
+ 'prE;': '\u2ab3',
1774
+ 'pre;': '\u2aaf',
1775
+ 'prec;': '\u227a',
1776
+ 'precapprox;': '\u2ab7',
1777
+ 'preccurlyeq;': '\u227c',
1778
+ 'Precedes;': '\u227a',
1779
+ 'PrecedesEqual;': '\u2aaf',
1780
+ 'PrecedesSlantEqual;': '\u227c',
1781
+ 'PrecedesTilde;': '\u227e',
1782
+ 'preceq;': '\u2aaf',
1783
+ 'precnapprox;': '\u2ab9',
1784
+ 'precneqq;': '\u2ab5',
1785
+ 'precnsim;': '\u22e8',
1786
+ 'precsim;': '\u227e',
1787
+ 'Prime;': '\u2033',
1788
+ 'prime;': '\u2032',
1789
+ 'primes;': '\u2119',
1790
+ 'prnap;': '\u2ab9',
1791
+ 'prnE;': '\u2ab5',
1792
+ 'prnsim;': '\u22e8',
1793
+ 'prod;': '\u220f',
1794
+ 'Product;': '\u220f',
1795
+ 'profalar;': '\u232e',
1796
+ 'profline;': '\u2312',
1797
+ 'profsurf;': '\u2313',
1798
+ 'prop;': '\u221d',
1799
+ 'Proportion;': '\u2237',
1800
+ 'Proportional;': '\u221d',
1801
+ 'propto;': '\u221d',
1802
+ 'prsim;': '\u227e',
1803
+ 'prurel;': '\u22b0',
1804
+ 'Pscr;': '\U0001d4ab',
1805
+ 'pscr;': '\U0001d4c5',
1806
+ 'Psi;': '\u03a8',
1807
+ 'psi;': '\u03c8',
1808
+ 'puncsp;': '\u2008',
1809
+ 'Qfr;': '\U0001d514',
1810
+ 'qfr;': '\U0001d52e',
1811
+ 'qint;': '\u2a0c',
1812
+ 'Qopf;': '\u211a',
1813
+ 'qopf;': '\U0001d562',
1814
+ 'qprime;': '\u2057',
1815
+ 'Qscr;': '\U0001d4ac',
1816
+ 'qscr;': '\U0001d4c6',
1817
+ 'quaternions;': '\u210d',
1818
+ 'quatint;': '\u2a16',
1819
+ 'quest;': '?',
1820
+ 'questeq;': '\u225f',
1821
+ 'QUOT': '"',
1822
+ 'quot': '"',
1823
+ 'QUOT;': '"',
1824
+ 'quot;': '"',
1825
+ 'rAarr;': '\u21db',
1826
+ 'race;': '\u223d\u0331',
1827
+ 'Racute;': '\u0154',
1828
+ 'racute;': '\u0155',
1829
+ 'radic;': '\u221a',
1830
+ 'raemptyv;': '\u29b3',
1831
+ 'Rang;': '\u27eb',
1832
+ 'rang;': '\u27e9',
1833
+ 'rangd;': '\u2992',
1834
+ 'range;': '\u29a5',
1835
+ 'rangle;': '\u27e9',
1836
+ 'raquo': '\xbb',
1837
+ 'raquo;': '\xbb',
1838
+ 'Rarr;': '\u21a0',
1839
+ 'rArr;': '\u21d2',
1840
+ 'rarr;': '\u2192',
1841
+ 'rarrap;': '\u2975',
1842
+ 'rarrb;': '\u21e5',
1843
+ 'rarrbfs;': '\u2920',
1844
+ 'rarrc;': '\u2933',
1845
+ 'rarrfs;': '\u291e',
1846
+ 'rarrhk;': '\u21aa',
1847
+ 'rarrlp;': '\u21ac',
1848
+ 'rarrpl;': '\u2945',
1849
+ 'rarrsim;': '\u2974',
1850
+ 'Rarrtl;': '\u2916',
1851
+ 'rarrtl;': '\u21a3',
1852
+ 'rarrw;': '\u219d',
1853
+ 'rAtail;': '\u291c',
1854
+ 'ratail;': '\u291a',
1855
+ 'ratio;': '\u2236',
1856
+ 'rationals;': '\u211a',
1857
+ 'RBarr;': '\u2910',
1858
+ 'rBarr;': '\u290f',
1859
+ 'rbarr;': '\u290d',
1860
+ 'rbbrk;': '\u2773',
1861
+ 'rbrace;': '}',
1862
+ 'rbrack;': ']',
1863
+ 'rbrke;': '\u298c',
1864
+ 'rbrksld;': '\u298e',
1865
+ 'rbrkslu;': '\u2990',
1866
+ 'Rcaron;': '\u0158',
1867
+ 'rcaron;': '\u0159',
1868
+ 'Rcedil;': '\u0156',
1869
+ 'rcedil;': '\u0157',
1870
+ 'rceil;': '\u2309',
1871
+ 'rcub;': '}',
1872
+ 'Rcy;': '\u0420',
1873
+ 'rcy;': '\u0440',
1874
+ 'rdca;': '\u2937',
1875
+ 'rdldhar;': '\u2969',
1876
+ 'rdquo;': '\u201d',
1877
+ 'rdquor;': '\u201d',
1878
+ 'rdsh;': '\u21b3',
1879
+ 'Re;': '\u211c',
1880
+ 'real;': '\u211c',
1881
+ 'realine;': '\u211b',
1882
+ 'realpart;': '\u211c',
1883
+ 'reals;': '\u211d',
1884
+ 'rect;': '\u25ad',
1885
+ 'REG': '\xae',
1886
+ 'reg': '\xae',
1887
+ 'REG;': '\xae',
1888
+ 'reg;': '\xae',
1889
+ 'ReverseElement;': '\u220b',
1890
+ 'ReverseEquilibrium;': '\u21cb',
1891
+ 'ReverseUpEquilibrium;': '\u296f',
1892
+ 'rfisht;': '\u297d',
1893
+ 'rfloor;': '\u230b',
1894
+ 'Rfr;': '\u211c',
1895
+ 'rfr;': '\U0001d52f',
1896
+ 'rHar;': '\u2964',
1897
+ 'rhard;': '\u21c1',
1898
+ 'rharu;': '\u21c0',
1899
+ 'rharul;': '\u296c',
1900
+ 'Rho;': '\u03a1',
1901
+ 'rho;': '\u03c1',
1902
+ 'rhov;': '\u03f1',
1903
+ 'RightAngleBracket;': '\u27e9',
1904
+ 'RightArrow;': '\u2192',
1905
+ 'Rightarrow;': '\u21d2',
1906
+ 'rightarrow;': '\u2192',
1907
+ 'RightArrowBar;': '\u21e5',
1908
+ 'RightArrowLeftArrow;': '\u21c4',
1909
+ 'rightarrowtail;': '\u21a3',
1910
+ 'RightCeiling;': '\u2309',
1911
+ 'RightDoubleBracket;': '\u27e7',
1912
+ 'RightDownTeeVector;': '\u295d',
1913
+ 'RightDownVector;': '\u21c2',
1914
+ 'RightDownVectorBar;': '\u2955',
1915
+ 'RightFloor;': '\u230b',
1916
+ 'rightharpoondown;': '\u21c1',
1917
+ 'rightharpoonup;': '\u21c0',
1918
+ 'rightleftarrows;': '\u21c4',
1919
+ 'rightleftharpoons;': '\u21cc',
1920
+ 'rightrightarrows;': '\u21c9',
1921
+ 'rightsquigarrow;': '\u219d',
1922
+ 'RightTee;': '\u22a2',
1923
+ 'RightTeeArrow;': '\u21a6',
1924
+ 'RightTeeVector;': '\u295b',
1925
+ 'rightthreetimes;': '\u22cc',
1926
+ 'RightTriangle;': '\u22b3',
1927
+ 'RightTriangleBar;': '\u29d0',
1928
+ 'RightTriangleEqual;': '\u22b5',
1929
+ 'RightUpDownVector;': '\u294f',
1930
+ 'RightUpTeeVector;': '\u295c',
1931
+ 'RightUpVector;': '\u21be',
1932
+ 'RightUpVectorBar;': '\u2954',
1933
+ 'RightVector;': '\u21c0',
1934
+ 'RightVectorBar;': '\u2953',
1935
+ 'ring;': '\u02da',
1936
+ 'risingdotseq;': '\u2253',
1937
+ 'rlarr;': '\u21c4',
1938
+ 'rlhar;': '\u21cc',
1939
+ 'rlm;': '\u200f',
1940
+ 'rmoust;': '\u23b1',
1941
+ 'rmoustache;': '\u23b1',
1942
+ 'rnmid;': '\u2aee',
1943
+ 'roang;': '\u27ed',
1944
+ 'roarr;': '\u21fe',
1945
+ 'robrk;': '\u27e7',
1946
+ 'ropar;': '\u2986',
1947
+ 'Ropf;': '\u211d',
1948
+ 'ropf;': '\U0001d563',
1949
+ 'roplus;': '\u2a2e',
1950
+ 'rotimes;': '\u2a35',
1951
+ 'RoundImplies;': '\u2970',
1952
+ 'rpar;': ')',
1953
+ 'rpargt;': '\u2994',
1954
+ 'rppolint;': '\u2a12',
1955
+ 'rrarr;': '\u21c9',
1956
+ 'Rrightarrow;': '\u21db',
1957
+ 'rsaquo;': '\u203a',
1958
+ 'Rscr;': '\u211b',
1959
+ 'rscr;': '\U0001d4c7',
1960
+ 'Rsh;': '\u21b1',
1961
+ 'rsh;': '\u21b1',
1962
+ 'rsqb;': ']',
1963
+ 'rsquo;': '\u2019',
1964
+ 'rsquor;': '\u2019',
1965
+ 'rthree;': '\u22cc',
1966
+ 'rtimes;': '\u22ca',
1967
+ 'rtri;': '\u25b9',
1968
+ 'rtrie;': '\u22b5',
1969
+ 'rtrif;': '\u25b8',
1970
+ 'rtriltri;': '\u29ce',
1971
+ 'RuleDelayed;': '\u29f4',
1972
+ 'ruluhar;': '\u2968',
1973
+ 'rx;': '\u211e',
1974
+ 'Sacute;': '\u015a',
1975
+ 'sacute;': '\u015b',
1976
+ 'sbquo;': '\u201a',
1977
+ 'Sc;': '\u2abc',
1978
+ 'sc;': '\u227b',
1979
+ 'scap;': '\u2ab8',
1980
+ 'Scaron;': '\u0160',
1981
+ 'scaron;': '\u0161',
1982
+ 'sccue;': '\u227d',
1983
+ 'scE;': '\u2ab4',
1984
+ 'sce;': '\u2ab0',
1985
+ 'Scedil;': '\u015e',
1986
+ 'scedil;': '\u015f',
1987
+ 'Scirc;': '\u015c',
1988
+ 'scirc;': '\u015d',
1989
+ 'scnap;': '\u2aba',
1990
+ 'scnE;': '\u2ab6',
1991
+ 'scnsim;': '\u22e9',
1992
+ 'scpolint;': '\u2a13',
1993
+ 'scsim;': '\u227f',
1994
+ 'Scy;': '\u0421',
1995
+ 'scy;': '\u0441',
1996
+ 'sdot;': '\u22c5',
1997
+ 'sdotb;': '\u22a1',
1998
+ 'sdote;': '\u2a66',
1999
+ 'searhk;': '\u2925',
2000
+ 'seArr;': '\u21d8',
2001
+ 'searr;': '\u2198',
2002
+ 'searrow;': '\u2198',
2003
+ 'sect': '\xa7',
2004
+ 'sect;': '\xa7',
2005
+ 'semi;': ';',
2006
+ 'seswar;': '\u2929',
2007
+ 'setminus;': '\u2216',
2008
+ 'setmn;': '\u2216',
2009
+ 'sext;': '\u2736',
2010
+ 'Sfr;': '\U0001d516',
2011
+ 'sfr;': '\U0001d530',
2012
+ 'sfrown;': '\u2322',
2013
+ 'sharp;': '\u266f',
2014
+ 'SHCHcy;': '\u0429',
2015
+ 'shchcy;': '\u0449',
2016
+ 'SHcy;': '\u0428',
2017
+ 'shcy;': '\u0448',
2018
+ 'ShortDownArrow;': '\u2193',
2019
+ 'ShortLeftArrow;': '\u2190',
2020
+ 'shortmid;': '\u2223',
2021
+ 'shortparallel;': '\u2225',
2022
+ 'ShortRightArrow;': '\u2192',
2023
+ 'ShortUpArrow;': '\u2191',
2024
+ 'shy': '\xad',
2025
+ 'shy;': '\xad',
2026
+ 'Sigma;': '\u03a3',
2027
+ 'sigma;': '\u03c3',
2028
+ 'sigmaf;': '\u03c2',
2029
+ 'sigmav;': '\u03c2',
2030
+ 'sim;': '\u223c',
2031
+ 'simdot;': '\u2a6a',
2032
+ 'sime;': '\u2243',
2033
+ 'simeq;': '\u2243',
2034
+ 'simg;': '\u2a9e',
2035
+ 'simgE;': '\u2aa0',
2036
+ 'siml;': '\u2a9d',
2037
+ 'simlE;': '\u2a9f',
2038
+ 'simne;': '\u2246',
2039
+ 'simplus;': '\u2a24',
2040
+ 'simrarr;': '\u2972',
2041
+ 'slarr;': '\u2190',
2042
+ 'SmallCircle;': '\u2218',
2043
+ 'smallsetminus;': '\u2216',
2044
+ 'smashp;': '\u2a33',
2045
+ 'smeparsl;': '\u29e4',
2046
+ 'smid;': '\u2223',
2047
+ 'smile;': '\u2323',
2048
+ 'smt;': '\u2aaa',
2049
+ 'smte;': '\u2aac',
2050
+ 'smtes;': '\u2aac\ufe00',
2051
+ 'SOFTcy;': '\u042c',
2052
+ 'softcy;': '\u044c',
2053
+ 'sol;': '/',
2054
+ 'solb;': '\u29c4',
2055
+ 'solbar;': '\u233f',
2056
+ 'Sopf;': '\U0001d54a',
2057
+ 'sopf;': '\U0001d564',
2058
+ 'spades;': '\u2660',
2059
+ 'spadesuit;': '\u2660',
2060
+ 'spar;': '\u2225',
2061
+ 'sqcap;': '\u2293',
2062
+ 'sqcaps;': '\u2293\ufe00',
2063
+ 'sqcup;': '\u2294',
2064
+ 'sqcups;': '\u2294\ufe00',
2065
+ 'Sqrt;': '\u221a',
2066
+ 'sqsub;': '\u228f',
2067
+ 'sqsube;': '\u2291',
2068
+ 'sqsubset;': '\u228f',
2069
+ 'sqsubseteq;': '\u2291',
2070
+ 'sqsup;': '\u2290',
2071
+ 'sqsupe;': '\u2292',
2072
+ 'sqsupset;': '\u2290',
2073
+ 'sqsupseteq;': '\u2292',
2074
+ 'squ;': '\u25a1',
2075
+ 'Square;': '\u25a1',
2076
+ 'square;': '\u25a1',
2077
+ 'SquareIntersection;': '\u2293',
2078
+ 'SquareSubset;': '\u228f',
2079
+ 'SquareSubsetEqual;': '\u2291',
2080
+ 'SquareSuperset;': '\u2290',
2081
+ 'SquareSupersetEqual;': '\u2292',
2082
+ 'SquareUnion;': '\u2294',
2083
+ 'squarf;': '\u25aa',
2084
+ 'squf;': '\u25aa',
2085
+ 'srarr;': '\u2192',
2086
+ 'Sscr;': '\U0001d4ae',
2087
+ 'sscr;': '\U0001d4c8',
2088
+ 'ssetmn;': '\u2216',
2089
+ 'ssmile;': '\u2323',
2090
+ 'sstarf;': '\u22c6',
2091
+ 'Star;': '\u22c6',
2092
+ 'star;': '\u2606',
2093
+ 'starf;': '\u2605',
2094
+ 'straightepsilon;': '\u03f5',
2095
+ 'straightphi;': '\u03d5',
2096
+ 'strns;': '\xaf',
2097
+ 'Sub;': '\u22d0',
2098
+ 'sub;': '\u2282',
2099
+ 'subdot;': '\u2abd',
2100
+ 'subE;': '\u2ac5',
2101
+ 'sube;': '\u2286',
2102
+ 'subedot;': '\u2ac3',
2103
+ 'submult;': '\u2ac1',
2104
+ 'subnE;': '\u2acb',
2105
+ 'subne;': '\u228a',
2106
+ 'subplus;': '\u2abf',
2107
+ 'subrarr;': '\u2979',
2108
+ 'Subset;': '\u22d0',
2109
+ 'subset;': '\u2282',
2110
+ 'subseteq;': '\u2286',
2111
+ 'subseteqq;': '\u2ac5',
2112
+ 'SubsetEqual;': '\u2286',
2113
+ 'subsetneq;': '\u228a',
2114
+ 'subsetneqq;': '\u2acb',
2115
+ 'subsim;': '\u2ac7',
2116
+ 'subsub;': '\u2ad5',
2117
+ 'subsup;': '\u2ad3',
2118
+ 'succ;': '\u227b',
2119
+ 'succapprox;': '\u2ab8',
2120
+ 'succcurlyeq;': '\u227d',
2121
+ 'Succeeds;': '\u227b',
2122
+ 'SucceedsEqual;': '\u2ab0',
2123
+ 'SucceedsSlantEqual;': '\u227d',
2124
+ 'SucceedsTilde;': '\u227f',
2125
+ 'succeq;': '\u2ab0',
2126
+ 'succnapprox;': '\u2aba',
2127
+ 'succneqq;': '\u2ab6',
2128
+ 'succnsim;': '\u22e9',
2129
+ 'succsim;': '\u227f',
2130
+ 'SuchThat;': '\u220b',
2131
+ 'Sum;': '\u2211',
2132
+ 'sum;': '\u2211',
2133
+ 'sung;': '\u266a',
2134
+ 'sup1': '\xb9',
2135
+ 'sup1;': '\xb9',
2136
+ 'sup2': '\xb2',
2137
+ 'sup2;': '\xb2',
2138
+ 'sup3': '\xb3',
2139
+ 'sup3;': '\xb3',
2140
+ 'Sup;': '\u22d1',
2141
+ 'sup;': '\u2283',
2142
+ 'supdot;': '\u2abe',
2143
+ 'supdsub;': '\u2ad8',
2144
+ 'supE;': '\u2ac6',
2145
+ 'supe;': '\u2287',
2146
+ 'supedot;': '\u2ac4',
2147
+ 'Superset;': '\u2283',
2148
+ 'SupersetEqual;': '\u2287',
2149
+ 'suphsol;': '\u27c9',
2150
+ 'suphsub;': '\u2ad7',
2151
+ 'suplarr;': '\u297b',
2152
+ 'supmult;': '\u2ac2',
2153
+ 'supnE;': '\u2acc',
2154
+ 'supne;': '\u228b',
2155
+ 'supplus;': '\u2ac0',
2156
+ 'Supset;': '\u22d1',
2157
+ 'supset;': '\u2283',
2158
+ 'supseteq;': '\u2287',
2159
+ 'supseteqq;': '\u2ac6',
2160
+ 'supsetneq;': '\u228b',
2161
+ 'supsetneqq;': '\u2acc',
2162
+ 'supsim;': '\u2ac8',
2163
+ 'supsub;': '\u2ad4',
2164
+ 'supsup;': '\u2ad6',
2165
+ 'swarhk;': '\u2926',
2166
+ 'swArr;': '\u21d9',
2167
+ 'swarr;': '\u2199',
2168
+ 'swarrow;': '\u2199',
2169
+ 'swnwar;': '\u292a',
2170
+ 'szlig': '\xdf',
2171
+ 'szlig;': '\xdf',
2172
+ 'Tab;': '\t',
2173
+ 'target;': '\u2316',
2174
+ 'Tau;': '\u03a4',
2175
+ 'tau;': '\u03c4',
2176
+ 'tbrk;': '\u23b4',
2177
+ 'Tcaron;': '\u0164',
2178
+ 'tcaron;': '\u0165',
2179
+ 'Tcedil;': '\u0162',
2180
+ 'tcedil;': '\u0163',
2181
+ 'Tcy;': '\u0422',
2182
+ 'tcy;': '\u0442',
2183
+ 'tdot;': '\u20db',
2184
+ 'telrec;': '\u2315',
2185
+ 'Tfr;': '\U0001d517',
2186
+ 'tfr;': '\U0001d531',
2187
+ 'there4;': '\u2234',
2188
+ 'Therefore;': '\u2234',
2189
+ 'therefore;': '\u2234',
2190
+ 'Theta;': '\u0398',
2191
+ 'theta;': '\u03b8',
2192
+ 'thetasym;': '\u03d1',
2193
+ 'thetav;': '\u03d1',
2194
+ 'thickapprox;': '\u2248',
2195
+ 'thicksim;': '\u223c',
2196
+ 'ThickSpace;': '\u205f\u200a',
2197
+ 'thinsp;': '\u2009',
2198
+ 'ThinSpace;': '\u2009',
2199
+ 'thkap;': '\u2248',
2200
+ 'thksim;': '\u223c',
2201
+ 'THORN': '\xde',
2202
+ 'thorn': '\xfe',
2203
+ 'THORN;': '\xde',
2204
+ 'thorn;': '\xfe',
2205
+ 'Tilde;': '\u223c',
2206
+ 'tilde;': '\u02dc',
2207
+ 'TildeEqual;': '\u2243',
2208
+ 'TildeFullEqual;': '\u2245',
2209
+ 'TildeTilde;': '\u2248',
2210
+ 'times': '\xd7',
2211
+ 'times;': '\xd7',
2212
+ 'timesb;': '\u22a0',
2213
+ 'timesbar;': '\u2a31',
2214
+ 'timesd;': '\u2a30',
2215
+ 'tint;': '\u222d',
2216
+ 'toea;': '\u2928',
2217
+ 'top;': '\u22a4',
2218
+ 'topbot;': '\u2336',
2219
+ 'topcir;': '\u2af1',
2220
+ 'Topf;': '\U0001d54b',
2221
+ 'topf;': '\U0001d565',
2222
+ 'topfork;': '\u2ada',
2223
+ 'tosa;': '\u2929',
2224
+ 'tprime;': '\u2034',
2225
+ 'TRADE;': '\u2122',
2226
+ 'trade;': '\u2122',
2227
+ 'triangle;': '\u25b5',
2228
+ 'triangledown;': '\u25bf',
2229
+ 'triangleleft;': '\u25c3',
2230
+ 'trianglelefteq;': '\u22b4',
2231
+ 'triangleq;': '\u225c',
2232
+ 'triangleright;': '\u25b9',
2233
+ 'trianglerighteq;': '\u22b5',
2234
+ 'tridot;': '\u25ec',
2235
+ 'trie;': '\u225c',
2236
+ 'triminus;': '\u2a3a',
2237
+ 'TripleDot;': '\u20db',
2238
+ 'triplus;': '\u2a39',
2239
+ 'trisb;': '\u29cd',
2240
+ 'tritime;': '\u2a3b',
2241
+ 'trpezium;': '\u23e2',
2242
+ 'Tscr;': '\U0001d4af',
2243
+ 'tscr;': '\U0001d4c9',
2244
+ 'TScy;': '\u0426',
2245
+ 'tscy;': '\u0446',
2246
+ 'TSHcy;': '\u040b',
2247
+ 'tshcy;': '\u045b',
2248
+ 'Tstrok;': '\u0166',
2249
+ 'tstrok;': '\u0167',
2250
+ 'twixt;': '\u226c',
2251
+ 'twoheadleftarrow;': '\u219e',
2252
+ 'twoheadrightarrow;': '\u21a0',
2253
+ 'Uacute': '\xda',
2254
+ 'uacute': '\xfa',
2255
+ 'Uacute;': '\xda',
2256
+ 'uacute;': '\xfa',
2257
+ 'Uarr;': '\u219f',
2258
+ 'uArr;': '\u21d1',
2259
+ 'uarr;': '\u2191',
2260
+ 'Uarrocir;': '\u2949',
2261
+ 'Ubrcy;': '\u040e',
2262
+ 'ubrcy;': '\u045e',
2263
+ 'Ubreve;': '\u016c',
2264
+ 'ubreve;': '\u016d',
2265
+ 'Ucirc': '\xdb',
2266
+ 'ucirc': '\xfb',
2267
+ 'Ucirc;': '\xdb',
2268
+ 'ucirc;': '\xfb',
2269
+ 'Ucy;': '\u0423',
2270
+ 'ucy;': '\u0443',
2271
+ 'udarr;': '\u21c5',
2272
+ 'Udblac;': '\u0170',
2273
+ 'udblac;': '\u0171',
2274
+ 'udhar;': '\u296e',
2275
+ 'ufisht;': '\u297e',
2276
+ 'Ufr;': '\U0001d518',
2277
+ 'ufr;': '\U0001d532',
2278
+ 'Ugrave': '\xd9',
2279
+ 'ugrave': '\xf9',
2280
+ 'Ugrave;': '\xd9',
2281
+ 'ugrave;': '\xf9',
2282
+ 'uHar;': '\u2963',
2283
+ 'uharl;': '\u21bf',
2284
+ 'uharr;': '\u21be',
2285
+ 'uhblk;': '\u2580',
2286
+ 'ulcorn;': '\u231c',
2287
+ 'ulcorner;': '\u231c',
2288
+ 'ulcrop;': '\u230f',
2289
+ 'ultri;': '\u25f8',
2290
+ 'Umacr;': '\u016a',
2291
+ 'umacr;': '\u016b',
2292
+ 'uml': '\xa8',
2293
+ 'uml;': '\xa8',
2294
+ 'UnderBar;': '_',
2295
+ 'UnderBrace;': '\u23df',
2296
+ 'UnderBracket;': '\u23b5',
2297
+ 'UnderParenthesis;': '\u23dd',
2298
+ 'Union;': '\u22c3',
2299
+ 'UnionPlus;': '\u228e',
2300
+ 'Uogon;': '\u0172',
2301
+ 'uogon;': '\u0173',
2302
+ 'Uopf;': '\U0001d54c',
2303
+ 'uopf;': '\U0001d566',
2304
+ 'UpArrow;': '\u2191',
2305
+ 'Uparrow;': '\u21d1',
2306
+ 'uparrow;': '\u2191',
2307
+ 'UpArrowBar;': '\u2912',
2308
+ 'UpArrowDownArrow;': '\u21c5',
2309
+ 'UpDownArrow;': '\u2195',
2310
+ 'Updownarrow;': '\u21d5',
2311
+ 'updownarrow;': '\u2195',
2312
+ 'UpEquilibrium;': '\u296e',
2313
+ 'upharpoonleft;': '\u21bf',
2314
+ 'upharpoonright;': '\u21be',
2315
+ 'uplus;': '\u228e',
2316
+ 'UpperLeftArrow;': '\u2196',
2317
+ 'UpperRightArrow;': '\u2197',
2318
+ 'Upsi;': '\u03d2',
2319
+ 'upsi;': '\u03c5',
2320
+ 'upsih;': '\u03d2',
2321
+ 'Upsilon;': '\u03a5',
2322
+ 'upsilon;': '\u03c5',
2323
+ 'UpTee;': '\u22a5',
2324
+ 'UpTeeArrow;': '\u21a5',
2325
+ 'upuparrows;': '\u21c8',
2326
+ 'urcorn;': '\u231d',
2327
+ 'urcorner;': '\u231d',
2328
+ 'urcrop;': '\u230e',
2329
+ 'Uring;': '\u016e',
2330
+ 'uring;': '\u016f',
2331
+ 'urtri;': '\u25f9',
2332
+ 'Uscr;': '\U0001d4b0',
2333
+ 'uscr;': '\U0001d4ca',
2334
+ 'utdot;': '\u22f0',
2335
+ 'Utilde;': '\u0168',
2336
+ 'utilde;': '\u0169',
2337
+ 'utri;': '\u25b5',
2338
+ 'utrif;': '\u25b4',
2339
+ 'uuarr;': '\u21c8',
2340
+ 'Uuml': '\xdc',
2341
+ 'uuml': '\xfc',
2342
+ 'Uuml;': '\xdc',
2343
+ 'uuml;': '\xfc',
2344
+ 'uwangle;': '\u29a7',
2345
+ 'vangrt;': '\u299c',
2346
+ 'varepsilon;': '\u03f5',
2347
+ 'varkappa;': '\u03f0',
2348
+ 'varnothing;': '\u2205',
2349
+ 'varphi;': '\u03d5',
2350
+ 'varpi;': '\u03d6',
2351
+ 'varpropto;': '\u221d',
2352
+ 'vArr;': '\u21d5',
2353
+ 'varr;': '\u2195',
2354
+ 'varrho;': '\u03f1',
2355
+ 'varsigma;': '\u03c2',
2356
+ 'varsubsetneq;': '\u228a\ufe00',
2357
+ 'varsubsetneqq;': '\u2acb\ufe00',
2358
+ 'varsupsetneq;': '\u228b\ufe00',
2359
+ 'varsupsetneqq;': '\u2acc\ufe00',
2360
+ 'vartheta;': '\u03d1',
2361
+ 'vartriangleleft;': '\u22b2',
2362
+ 'vartriangleright;': '\u22b3',
2363
+ 'Vbar;': '\u2aeb',
2364
+ 'vBar;': '\u2ae8',
2365
+ 'vBarv;': '\u2ae9',
2366
+ 'Vcy;': '\u0412',
2367
+ 'vcy;': '\u0432',
2368
+ 'VDash;': '\u22ab',
2369
+ 'Vdash;': '\u22a9',
2370
+ 'vDash;': '\u22a8',
2371
+ 'vdash;': '\u22a2',
2372
+ 'Vdashl;': '\u2ae6',
2373
+ 'Vee;': '\u22c1',
2374
+ 'vee;': '\u2228',
2375
+ 'veebar;': '\u22bb',
2376
+ 'veeeq;': '\u225a',
2377
+ 'vellip;': '\u22ee',
2378
+ 'Verbar;': '\u2016',
2379
+ 'verbar;': '|',
2380
+ 'Vert;': '\u2016',
2381
+ 'vert;': '|',
2382
+ 'VerticalBar;': '\u2223',
2383
+ 'VerticalLine;': '|',
2384
+ 'VerticalSeparator;': '\u2758',
2385
+ 'VerticalTilde;': '\u2240',
2386
+ 'VeryThinSpace;': '\u200a',
2387
+ 'Vfr;': '\U0001d519',
2388
+ 'vfr;': '\U0001d533',
2389
+ 'vltri;': '\u22b2',
2390
+ 'vnsub;': '\u2282\u20d2',
2391
+ 'vnsup;': '\u2283\u20d2',
2392
+ 'Vopf;': '\U0001d54d',
2393
+ 'vopf;': '\U0001d567',
2394
+ 'vprop;': '\u221d',
2395
+ 'vrtri;': '\u22b3',
2396
+ 'Vscr;': '\U0001d4b1',
2397
+ 'vscr;': '\U0001d4cb',
2398
+ 'vsubnE;': '\u2acb\ufe00',
2399
+ 'vsubne;': '\u228a\ufe00',
2400
+ 'vsupnE;': '\u2acc\ufe00',
2401
+ 'vsupne;': '\u228b\ufe00',
2402
+ 'Vvdash;': '\u22aa',
2403
+ 'vzigzag;': '\u299a',
2404
+ 'Wcirc;': '\u0174',
2405
+ 'wcirc;': '\u0175',
2406
+ 'wedbar;': '\u2a5f',
2407
+ 'Wedge;': '\u22c0',
2408
+ 'wedge;': '\u2227',
2409
+ 'wedgeq;': '\u2259',
2410
+ 'weierp;': '\u2118',
2411
+ 'Wfr;': '\U0001d51a',
2412
+ 'wfr;': '\U0001d534',
2413
+ 'Wopf;': '\U0001d54e',
2414
+ 'wopf;': '\U0001d568',
2415
+ 'wp;': '\u2118',
2416
+ 'wr;': '\u2240',
2417
+ 'wreath;': '\u2240',
2418
+ 'Wscr;': '\U0001d4b2',
2419
+ 'wscr;': '\U0001d4cc',
2420
+ 'xcap;': '\u22c2',
2421
+ 'xcirc;': '\u25ef',
2422
+ 'xcup;': '\u22c3',
2423
+ 'xdtri;': '\u25bd',
2424
+ 'Xfr;': '\U0001d51b',
2425
+ 'xfr;': '\U0001d535',
2426
+ 'xhArr;': '\u27fa',
2427
+ 'xharr;': '\u27f7',
2428
+ 'Xi;': '\u039e',
2429
+ 'xi;': '\u03be',
2430
+ 'xlArr;': '\u27f8',
2431
+ 'xlarr;': '\u27f5',
2432
+ 'xmap;': '\u27fc',
2433
+ 'xnis;': '\u22fb',
2434
+ 'xodot;': '\u2a00',
2435
+ 'Xopf;': '\U0001d54f',
2436
+ 'xopf;': '\U0001d569',
2437
+ 'xoplus;': '\u2a01',
2438
+ 'xotime;': '\u2a02',
2439
+ 'xrArr;': '\u27f9',
2440
+ 'xrarr;': '\u27f6',
2441
+ 'Xscr;': '\U0001d4b3',
2442
+ 'xscr;': '\U0001d4cd',
2443
+ 'xsqcup;': '\u2a06',
2444
+ 'xuplus;': '\u2a04',
2445
+ 'xutri;': '\u25b3',
2446
+ 'xvee;': '\u22c1',
2447
+ 'xwedge;': '\u22c0',
2448
+ 'Yacute': '\xdd',
2449
+ 'yacute': '\xfd',
2450
+ 'Yacute;': '\xdd',
2451
+ 'yacute;': '\xfd',
2452
+ 'YAcy;': '\u042f',
2453
+ 'yacy;': '\u044f',
2454
+ 'Ycirc;': '\u0176',
2455
+ 'ycirc;': '\u0177',
2456
+ 'Ycy;': '\u042b',
2457
+ 'ycy;': '\u044b',
2458
+ 'yen': '\xa5',
2459
+ 'yen;': '\xa5',
2460
+ 'Yfr;': '\U0001d51c',
2461
+ 'yfr;': '\U0001d536',
2462
+ 'YIcy;': '\u0407',
2463
+ 'yicy;': '\u0457',
2464
+ 'Yopf;': '\U0001d550',
2465
+ 'yopf;': '\U0001d56a',
2466
+ 'Yscr;': '\U0001d4b4',
2467
+ 'yscr;': '\U0001d4ce',
2468
+ 'YUcy;': '\u042e',
2469
+ 'yucy;': '\u044e',
2470
+ 'yuml': '\xff',
2471
+ 'Yuml;': '\u0178',
2472
+ 'yuml;': '\xff',
2473
+ 'Zacute;': '\u0179',
2474
+ 'zacute;': '\u017a',
2475
+ 'Zcaron;': '\u017d',
2476
+ 'zcaron;': '\u017e',
2477
+ 'Zcy;': '\u0417',
2478
+ 'zcy;': '\u0437',
2479
+ 'Zdot;': '\u017b',
2480
+ 'zdot;': '\u017c',
2481
+ 'zeetrf;': '\u2128',
2482
+ 'ZeroWidthSpace;': '\u200b',
2483
+ 'Zeta;': '\u0396',
2484
+ 'zeta;': '\u03b6',
2485
+ 'Zfr;': '\u2128',
2486
+ 'zfr;': '\U0001d537',
2487
+ 'ZHcy;': '\u0416',
2488
+ 'zhcy;': '\u0436',
2489
+ 'zigrarr;': '\u21dd',
2490
+ 'Zopf;': '\u2124',
2491
+ 'zopf;': '\U0001d56b',
2492
+ 'Zscr;': '\U0001d4b5',
2493
+ 'zscr;': '\U0001d4cf',
2494
+ 'zwj;': '\u200d',
2495
+ 'zwnj;': '\u200c',
2496
+ }
2497
+
2498
+ # maps the Unicode code point to the HTML entity name
2499
+ codepoint2name = {}
2500
+
2501
+ # maps the HTML entity name to the character
2502
+ # (or a character reference if the character is outside the Latin-1 range)
2503
+ entitydefs = {}
2504
+
2505
+ for (name, codepoint) in name2codepoint.items():
2506
+ codepoint2name[codepoint] = name
2507
+ entitydefs[name] = chr(codepoint)
2508
+
2509
+ del name, codepoint
my_container_sandbox/workspace/anaconda3/lib/python3.8/html/parser.py ADDED
@@ -0,0 +1,470 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """A parser for HTML and XHTML."""
2
+
3
+ # This file is based on sgmllib.py, but the API is slightly different.
4
+
5
+ # XXX There should be a way to distinguish between PCDATA (parsed
6
+ # character data -- the normal case), RCDATA (replaceable character
7
+ # data -- only char and entity references and end tags are special)
8
+ # and CDATA (character data -- only end tags are special).
9
+
10
+
11
+ import re
12
+ import warnings
13
+ import _markupbase
14
+
15
+ from html import unescape
16
+
17
+
18
+ __all__ = ['HTMLParser']
19
+
20
+ # Regular expressions used for parsing
21
+
22
+ interesting_normal = re.compile('[&<]')
23
+ incomplete = re.compile('&[a-zA-Z#]')
24
+
25
+ entityref = re.compile('&([a-zA-Z][-.a-zA-Z0-9]*)[^a-zA-Z0-9]')
26
+ charref = re.compile('&#(?:[0-9]+|[xX][0-9a-fA-F]+)[^0-9a-fA-F]')
27
+
28
+ starttagopen = re.compile('<[a-zA-Z]')
29
+ piclose = re.compile('>')
30
+ commentclose = re.compile(r'--\s*>')
31
+ # Note:
32
+ # 1) if you change tagfind/attrfind remember to update locatestarttagend too;
33
+ # 2) if you change tagfind/attrfind and/or locatestarttagend the parser will
34
+ # explode, so don't do it.
35
+ # see http://www.w3.org/TR/html5/tokenization.html#tag-open-state
36
+ # and http://www.w3.org/TR/html5/tokenization.html#tag-name-state
37
+ tagfind_tolerant = re.compile(r'([a-zA-Z][^\t\n\r\f />\x00]*)(?:\s|/(?!>))*')
38
+ attrfind_tolerant = re.compile(
39
+ r'((?<=[\'"\s/])[^\s/>][^\s/=>]*)(\s*=+\s*'
40
+ r'(\'[^\']*\'|"[^"]*"|(?![\'"])[^>\s]*))?(?:\s|/(?!>))*')
41
+ locatestarttagend_tolerant = re.compile(r"""
42
+ <[a-zA-Z][^\t\n\r\f />\x00]* # tag name
43
+ (?:[\s/]* # optional whitespace before attribute name
44
+ (?:(?<=['"\s/])[^\s/>][^\s/=>]* # attribute name
45
+ (?:\s*=+\s* # value indicator
46
+ (?:'[^']*' # LITA-enclosed value
47
+ |"[^"]*" # LIT-enclosed value
48
+ |(?!['"])[^>\s]* # bare value
49
+ )
50
+ \s* # possibly followed by a space
51
+ )?(?:\s|/(?!>))*
52
+ )*
53
+ )?
54
+ \s* # trailing whitespace
55
+ """, re.VERBOSE)
56
+ endendtag = re.compile('>')
57
+ # the HTML 5 spec, section 8.1.2.2, doesn't allow spaces between
58
+ # </ and the tag name, so maybe this should be fixed
59
+ endtagfind = re.compile(r'</\s*([a-zA-Z][-.a-zA-Z0-9:_]*)\s*>')
60
+
61
+
62
+
63
+ class HTMLParser(_markupbase.ParserBase):
64
+ """Find tags and other markup and call handler functions.
65
+
66
+ Usage:
67
+ p = HTMLParser()
68
+ p.feed(data)
69
+ ...
70
+ p.close()
71
+
72
+ Start tags are handled by calling self.handle_starttag() or
73
+ self.handle_startendtag(); end tags by self.handle_endtag(). The
74
+ data between tags is passed from the parser to the derived class
75
+ by calling self.handle_data() with the data as argument (the data
76
+ may be split up in arbitrary chunks). If convert_charrefs is
77
+ True the character references are converted automatically to the
78
+ corresponding Unicode character (and self.handle_data() is no
79
+ longer split in chunks), otherwise they are passed by calling
80
+ self.handle_entityref() or self.handle_charref() with the string
81
+ containing respectively the named or numeric reference as the
82
+ argument.
83
+ """
84
+
85
+ CDATA_CONTENT_ELEMENTS = ("script", "style")
86
+
87
+ def __init__(self, *, convert_charrefs=True):
88
+ """Initialize and reset this instance.
89
+
90
+ If convert_charrefs is True (the default), all character references
91
+ are automatically converted to the corresponding Unicode characters.
92
+ """
93
+ self.convert_charrefs = convert_charrefs
94
+ self.reset()
95
+
96
+ def reset(self):
97
+ """Reset this instance. Loses all unprocessed data."""
98
+ self.rawdata = ''
99
+ self.lasttag = '???'
100
+ self.interesting = interesting_normal
101
+ self.cdata_elem = None
102
+ _markupbase.ParserBase.reset(self)
103
+
104
+ def feed(self, data):
105
+ r"""Feed data to the parser.
106
+
107
+ Call this as often as you want, with as little or as much text
108
+ as you want (may include '\n').
109
+ """
110
+ self.rawdata = self.rawdata + data
111
+ self.goahead(0)
112
+
113
+ def close(self):
114
+ """Handle any buffered data."""
115
+ self.goahead(1)
116
+
117
+ __starttag_text = None
118
+
119
+ def get_starttag_text(self):
120
+ """Return full source of start tag: '<...>'."""
121
+ return self.__starttag_text
122
+
123
+ def set_cdata_mode(self, elem):
124
+ self.cdata_elem = elem.lower()
125
+ self.interesting = re.compile(r'</\s*%s\s*>' % self.cdata_elem, re.I)
126
+
127
+ def clear_cdata_mode(self):
128
+ self.interesting = interesting_normal
129
+ self.cdata_elem = None
130
+
131
+ # Internal -- handle data as far as reasonable. May leave state
132
+ # and data to be processed by a subsequent call. If 'end' is
133
+ # true, force handling all data as if followed by EOF marker.
134
+ def goahead(self, end):
135
+ rawdata = self.rawdata
136
+ i = 0
137
+ n = len(rawdata)
138
+ while i < n:
139
+ if self.convert_charrefs and not self.cdata_elem:
140
+ j = rawdata.find('<', i)
141
+ if j < 0:
142
+ # if we can't find the next <, either we are at the end
143
+ # or there's more text incoming. If the latter is True,
144
+ # we can't pass the text to handle_data in case we have
145
+ # a charref cut in half at end. Try to determine if
146
+ # this is the case before proceeding by looking for an
147
+ # & near the end and see if it's followed by a space or ;.
148
+ amppos = rawdata.rfind('&', max(i, n-34))
149
+ if (amppos >= 0 and
150
+ not re.compile(r'[\s;]').search(rawdata, amppos)):
151
+ break # wait till we get all the text
152
+ j = n
153
+ else:
154
+ match = self.interesting.search(rawdata, i) # < or &
155
+ if match:
156
+ j = match.start()
157
+ else:
158
+ if self.cdata_elem:
159
+ break
160
+ j = n
161
+ if i < j:
162
+ if self.convert_charrefs and not self.cdata_elem:
163
+ self.handle_data(unescape(rawdata[i:j]))
164
+ else:
165
+ self.handle_data(rawdata[i:j])
166
+ i = self.updatepos(i, j)
167
+ if i == n: break
168
+ startswith = rawdata.startswith
169
+ if startswith('<', i):
170
+ if starttagopen.match(rawdata, i): # < + letter
171
+ k = self.parse_starttag(i)
172
+ elif startswith("</", i):
173
+ k = self.parse_endtag(i)
174
+ elif startswith("<!--", i):
175
+ k = self.parse_comment(i)
176
+ elif startswith("<?", i):
177
+ k = self.parse_pi(i)
178
+ elif startswith("<!", i):
179
+ k = self.parse_html_declaration(i)
180
+ elif (i + 1) < n:
181
+ self.handle_data("<")
182
+ k = i + 1
183
+ else:
184
+ break
185
+ if k < 0:
186
+ if not end:
187
+ break
188
+ k = rawdata.find('>', i + 1)
189
+ if k < 0:
190
+ k = rawdata.find('<', i + 1)
191
+ if k < 0:
192
+ k = i + 1
193
+ else:
194
+ k += 1
195
+ if self.convert_charrefs and not self.cdata_elem:
196
+ self.handle_data(unescape(rawdata[i:k]))
197
+ else:
198
+ self.handle_data(rawdata[i:k])
199
+ i = self.updatepos(i, k)
200
+ elif startswith("&#", i):
201
+ match = charref.match(rawdata, i)
202
+ if match:
203
+ name = match.group()[2:-1]
204
+ self.handle_charref(name)
205
+ k = match.end()
206
+ if not startswith(';', k-1):
207
+ k = k - 1
208
+ i = self.updatepos(i, k)
209
+ continue
210
+ else:
211
+ if ";" in rawdata[i:]: # bail by consuming &#
212
+ self.handle_data(rawdata[i:i+2])
213
+ i = self.updatepos(i, i+2)
214
+ break
215
+ elif startswith('&', i):
216
+ match = entityref.match(rawdata, i)
217
+ if match:
218
+ name = match.group(1)
219
+ self.handle_entityref(name)
220
+ k = match.end()
221
+ if not startswith(';', k-1):
222
+ k = k - 1
223
+ i = self.updatepos(i, k)
224
+ continue
225
+ match = incomplete.match(rawdata, i)
226
+ if match:
227
+ # match.group() will contain at least 2 chars
228
+ if end and match.group() == rawdata[i:]:
229
+ k = match.end()
230
+ if k <= i:
231
+ k = n
232
+ i = self.updatepos(i, i + 1)
233
+ # incomplete
234
+ break
235
+ elif (i + 1) < n:
236
+ # not the end of the buffer, and can't be confused
237
+ # with some other construct
238
+ self.handle_data("&")
239
+ i = self.updatepos(i, i + 1)
240
+ else:
241
+ break
242
+ else:
243
+ assert 0, "interesting.search() lied"
244
+ # end while
245
+ if end and i < n and not self.cdata_elem:
246
+ if self.convert_charrefs and not self.cdata_elem:
247
+ self.handle_data(unescape(rawdata[i:n]))
248
+ else:
249
+ self.handle_data(rawdata[i:n])
250
+ i = self.updatepos(i, n)
251
+ self.rawdata = rawdata[i:]
252
+
253
+ # Internal -- parse html declarations, return length or -1 if not terminated
254
+ # See w3.org/TR/html5/tokenization.html#markup-declaration-open-state
255
+ # See also parse_declaration in _markupbase
256
+ def parse_html_declaration(self, i):
257
+ rawdata = self.rawdata
258
+ assert rawdata[i:i+2] == '<!', ('unexpected call to '
259
+ 'parse_html_declaration()')
260
+ if rawdata[i:i+4] == '<!--':
261
+ # this case is actually already handled in goahead()
262
+ return self.parse_comment(i)
263
+ elif rawdata[i:i+3] == '<![':
264
+ return self.parse_marked_section(i)
265
+ elif rawdata[i:i+9].lower() == '<!doctype':
266
+ # find the closing >
267
+ gtpos = rawdata.find('>', i+9)
268
+ if gtpos == -1:
269
+ return -1
270
+ self.handle_decl(rawdata[i+2:gtpos])
271
+ return gtpos+1
272
+ else:
273
+ return self.parse_bogus_comment(i)
274
+
275
+ # Internal -- parse bogus comment, return length or -1 if not terminated
276
+ # see http://www.w3.org/TR/html5/tokenization.html#bogus-comment-state
277
+ def parse_bogus_comment(self, i, report=1):
278
+ rawdata = self.rawdata
279
+ assert rawdata[i:i+2] in ('<!', '</'), ('unexpected call to '
280
+ 'parse_comment()')
281
+ pos = rawdata.find('>', i+2)
282
+ if pos == -1:
283
+ return -1
284
+ if report:
285
+ self.handle_comment(rawdata[i+2:pos])
286
+ return pos + 1
287
+
288
+ # Internal -- parse processing instr, return end or -1 if not terminated
289
+ def parse_pi(self, i):
290
+ rawdata = self.rawdata
291
+ assert rawdata[i:i+2] == '<?', 'unexpected call to parse_pi()'
292
+ match = piclose.search(rawdata, i+2) # >
293
+ if not match:
294
+ return -1
295
+ j = match.start()
296
+ self.handle_pi(rawdata[i+2: j])
297
+ j = match.end()
298
+ return j
299
+
300
+ # Internal -- handle starttag, return end or -1 if not terminated
301
+ def parse_starttag(self, i):
302
+ self.__starttag_text = None
303
+ endpos = self.check_for_whole_start_tag(i)
304
+ if endpos < 0:
305
+ return endpos
306
+ rawdata = self.rawdata
307
+ self.__starttag_text = rawdata[i:endpos]
308
+
309
+ # Now parse the data between i+1 and j into a tag and attrs
310
+ attrs = []
311
+ match = tagfind_tolerant.match(rawdata, i+1)
312
+ assert match, 'unexpected call to parse_starttag()'
313
+ k = match.end()
314
+ self.lasttag = tag = match.group(1).lower()
315
+ while k < endpos:
316
+ m = attrfind_tolerant.match(rawdata, k)
317
+ if not m:
318
+ break
319
+ attrname, rest, attrvalue = m.group(1, 2, 3)
320
+ if not rest:
321
+ attrvalue = None
322
+ elif attrvalue[:1] == '\'' == attrvalue[-1:] or \
323
+ attrvalue[:1] == '"' == attrvalue[-1:]:
324
+ attrvalue = attrvalue[1:-1]
325
+ if attrvalue:
326
+ attrvalue = unescape(attrvalue)
327
+ attrs.append((attrname.lower(), attrvalue))
328
+ k = m.end()
329
+
330
+ end = rawdata[k:endpos].strip()
331
+ if end not in (">", "/>"):
332
+ lineno, offset = self.getpos()
333
+ if "\n" in self.__starttag_text:
334
+ lineno = lineno + self.__starttag_text.count("\n")
335
+ offset = len(self.__starttag_text) \
336
+ - self.__starttag_text.rfind("\n")
337
+ else:
338
+ offset = offset + len(self.__starttag_text)
339
+ self.handle_data(rawdata[i:endpos])
340
+ return endpos
341
+ if end.endswith('/>'):
342
+ # XHTML-style empty tag: <span attr="value" />
343
+ self.handle_startendtag(tag, attrs)
344
+ else:
345
+ self.handle_starttag(tag, attrs)
346
+ if tag in self.CDATA_CONTENT_ELEMENTS:
347
+ self.set_cdata_mode(tag)
348
+ return endpos
349
+
350
+ # Internal -- check to see if we have a complete starttag; return end
351
+ # or -1 if incomplete.
352
+ def check_for_whole_start_tag(self, i):
353
+ rawdata = self.rawdata
354
+ m = locatestarttagend_tolerant.match(rawdata, i)
355
+ if m:
356
+ j = m.end()
357
+ next = rawdata[j:j+1]
358
+ if next == ">":
359
+ return j + 1
360
+ if next == "/":
361
+ if rawdata.startswith("/>", j):
362
+ return j + 2
363
+ if rawdata.startswith("/", j):
364
+ # buffer boundary
365
+ return -1
366
+ # else bogus input
367
+ if j > i:
368
+ return j
369
+ else:
370
+ return i + 1
371
+ if next == "":
372
+ # end of input
373
+ return -1
374
+ if next in ("abcdefghijklmnopqrstuvwxyz=/"
375
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"):
376
+ # end of input in or before attribute value, or we have the
377
+ # '/' from a '/>' ending
378
+ return -1
379
+ if j > i:
380
+ return j
381
+ else:
382
+ return i + 1
383
+ raise AssertionError("we should not get here!")
384
+
385
+ # Internal -- parse endtag, return end or -1 if incomplete
386
+ def parse_endtag(self, i):
387
+ rawdata = self.rawdata
388
+ assert rawdata[i:i+2] == "</", "unexpected call to parse_endtag"
389
+ match = endendtag.search(rawdata, i+1) # >
390
+ if not match:
391
+ return -1
392
+ gtpos = match.end()
393
+ match = endtagfind.match(rawdata, i) # </ + tag + >
394
+ if not match:
395
+ if self.cdata_elem is not None:
396
+ self.handle_data(rawdata[i:gtpos])
397
+ return gtpos
398
+ # find the name: w3.org/TR/html5/tokenization.html#tag-name-state
399
+ namematch = tagfind_tolerant.match(rawdata, i+2)
400
+ if not namematch:
401
+ # w3.org/TR/html5/tokenization.html#end-tag-open-state
402
+ if rawdata[i:i+3] == '</>':
403
+ return i+3
404
+ else:
405
+ return self.parse_bogus_comment(i)
406
+ tagname = namematch.group(1).lower()
407
+ # consume and ignore other stuff between the name and the >
408
+ # Note: this is not 100% correct, since we might have things like
409
+ # </tag attr=">">, but looking for > after tha name should cover
410
+ # most of the cases and is much simpler
411
+ gtpos = rawdata.find('>', namematch.end())
412
+ self.handle_endtag(tagname)
413
+ return gtpos+1
414
+
415
+ elem = match.group(1).lower() # script or style
416
+ if self.cdata_elem is not None:
417
+ if elem != self.cdata_elem:
418
+ self.handle_data(rawdata[i:gtpos])
419
+ return gtpos
420
+
421
+ self.handle_endtag(elem)
422
+ self.clear_cdata_mode()
423
+ return gtpos
424
+
425
+ # Overridable -- finish processing of start+end tag: <tag.../>
426
+ def handle_startendtag(self, tag, attrs):
427
+ self.handle_starttag(tag, attrs)
428
+ self.handle_endtag(tag)
429
+
430
+ # Overridable -- handle start tag
431
+ def handle_starttag(self, tag, attrs):
432
+ pass
433
+
434
+ # Overridable -- handle end tag
435
+ def handle_endtag(self, tag):
436
+ pass
437
+
438
+ # Overridable -- handle character reference
439
+ def handle_charref(self, name):
440
+ pass
441
+
442
+ # Overridable -- handle entity reference
443
+ def handle_entityref(self, name):
444
+ pass
445
+
446
+ # Overridable -- handle data
447
+ def handle_data(self, data):
448
+ pass
449
+
450
+ # Overridable -- handle comment
451
+ def handle_comment(self, data):
452
+ pass
453
+
454
+ # Overridable -- handle declaration
455
+ def handle_decl(self, decl):
456
+ pass
457
+
458
+ # Overridable -- handle processing instruction
459
+ def handle_pi(self, data):
460
+ pass
461
+
462
+ def unknown_decl(self, data):
463
+ pass
464
+
465
+ # Internal -- helper to remove special character quoting
466
+ def unescape(self, s):
467
+ warnings.warn('The unescape method is deprecated and will be removed '
468
+ 'in 3.5, use html.unescape() instead.',
469
+ DeprecationWarning, stacklevel=2)
470
+ return unescape(s)
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_bisect.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (37.3 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_codecs_iso2022.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (76.2 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_contextvars.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (29.4 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_crypt.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (29.5 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_ctypes_test.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (77.7 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_curses_panel.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (64.2 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_lsprof.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (79.9 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_md5.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (50.3 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_multiprocessing.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (56 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (30.8 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_posixshmem.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (35.6 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_posixsubprocess.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (64.2 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_queue.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (49.8 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_random.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (51.8 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha1.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (50.1 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha256.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (82.5 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha512.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (84.5 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_statistics.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (32.1 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testimportmultiple.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (26.1 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testinternalcapi.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (26.4 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testmultiphase.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (63.2 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_xxtestfuzz.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (57.4 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/fcntl.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (58.8 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/grp.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (52.3 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/nis.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (56 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/ossaudiodev.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (98.7 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/parser.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (97.9 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/resource.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (47.7 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/spwd.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (41.5 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/syslog.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (39.9 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/termios.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (55.4 kB). View file
 
my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/xxlimited.cpython-38-x86_64-linux-gnu.so ADDED
Binary file (35.6 kB). View file