Add files using upload-large-folder tool
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +5 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Makefile +1953 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup +368 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/Setup.local +1 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c +114 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/config.c.in +67 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/install-sh +518 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/makesetup +309 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/python-config.py +74 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/config-3.8-x86_64-linux-gnu/python.o +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/curses/textpad.py +201 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/encodings/mac_latin2.py +312 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/__init__.py +216 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/__main__.py +5 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/ensurepip/_uninstall.py +31 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/html/__init__.py +132 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/html/entities.py +2509 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/html/parser.py +470 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_bisect.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_codecs_iso2022.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_contextvars.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_crypt.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_ctypes_test.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_curses_panel.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_lsprof.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_md5.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_multiprocessing.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_opcode.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_posixshmem.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_posixsubprocess.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_queue.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_random.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha1.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha256.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_sha512.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_statistics.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testimportmultiple.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testinternalcapi.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_testmultiphase.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/_xxtestfuzz.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/fcntl.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/grp.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/nis.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/ossaudiodev.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/parser.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/resource.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/spwd.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/syslog.cpython-38-x86_64-linux-gnu.so +0 -0
- my_container_sandbox/workspace/anaconda3/lib/python3.8/lib-dynload/termios.cpython-38-x86_64-linux-gnu.so +0 -0
- 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("&", "&") # Must be done first!
|
| 20 |
+
s = s.replace("<", "<")
|
| 21 |
+
s = s.replace(">", ">")
|
| 22 |
+
if quote:
|
| 23 |
+
s = s.replace('"', """)
|
| 24 |
+
s = s.replace('\'', "'")
|
| 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. >, >,
|
| 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
|
|
|