Mock Version: 3.0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '2c25582a0c4349ca90f3bb0d7aedf1f5', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1649462400 Wrote: /builddir/build/SRPMS/python-wfmap-0.0.7~~dev0-1.fc37.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '9f7e63e4be6f445faec737c9456abde3', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1649462400 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.u27uFn + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf wfmap-0.0.7.dev0 + /usr/bin/gzip -dc /builddir/build/SOURCES/wfmap-0.0.7.dev0.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd wfmap-0.0.7.dev0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.FzVEB2 + umask 022 + cd /builddir/build/BUILD + cd wfmap-0.0.7.dev0 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement not satisfied: setuptools >= 40.8 Handling wheel from default build backend Requirement not satisfied: wheel Exiting dependency generation pass: build backend + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-wfmap-0.0.7~~dev0-1.fc37.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'cefcd744a2b9447fbd5c5301e9dcdce7', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1649462400 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.7ySOaJ + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf wfmap-0.0.7.dev0 + /usr/bin/gzip -dc /builddir/build/SOURCES/wfmap-0.0.7.dev0.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd wfmap-0.0.7.dev0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.bo4I6s + umask 022 + cd /builddir/build/BUILD + cd wfmap-0.0.7.dev0 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 60.9.3) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.37.1) /usr/lib/python3.10/site-packages/setuptools/dist.py:505: UserWarning: Normalizing '0.0.7.dev' to '0.0.7.dev0' warnings.warn(tmpl.format(**locals())) HOOK STDOUT: # Wafer Heatmap Visualization HOOK STDOUT: HOOK STDOUT: Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. HOOK STDOUT: HOOK STDOUT: This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. HOOK STDOUT: HOOK STDOUT: Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Installation HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: To install wfmap via PyPI using pip: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: pip install wfmap HOOK STDOUT: ``` HOOK STDOUT: or build the latest release from Github: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: git clone https://github.com/xlhaw/wfmap.git HOOK STDOUT: cd wfmap HOOK STDOUT: python setup.py install HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Basic Usage HOOK STDOUT: HOOK STDOUT: For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: import pandas as pd HOOK STDOUT: from wfmap import wafermap HOOK STDOUT: data=pd.read_csv('/data/demo.csv') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Numerical Data** HOOK STDOUT: HOOK STDOUT: 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='DATA',dtype='num') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![DATA](/img/Figure_2.png) HOOK STDOUT: HOOK STDOUT: On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Categorical Data ** HOOK STDOUT: HOOK STDOUT: Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='CODE',dtype='cat') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![CODE](/img/Figure_1.png) HOOK STDOUT: HOOK STDOUT: In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: running egg_info HOOK STDOUT: writing wfmap.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to wfmap.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to wfmap.egg-info/requires.txt HOOK STDOUT: writing top-level names to wfmap.egg-info/top_level.txt HOOK STDOUT: reading manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: writing manifest file 'wfmap.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.37.1) HOOK STDOUT: # Wafer Heatmap Visualization HOOK STDOUT: HOOK STDOUT: Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. HOOK STDOUT: HOOK STDOUT: This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. HOOK STDOUT: HOOK STDOUT: Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Installation HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: To install wfmap via PyPI using pip: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: pip install wfmap HOOK STDOUT: ``` HOOK STDOUT: or build the latest release from Github: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: git clone https://github.com/xlhaw/wfmap.git HOOK STDOUT: cd wfmap HOOK STDOUT: python setup.py install HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Basic Usage HOOK STDOUT: HOOK STDOUT: For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: import pandas as pd HOOK STDOUT: from wfmap import wafermap HOOK STDOUT: data=pd.read_csv('/data/demo.csv') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Numerical Data** HOOK STDOUT: HOOK STDOUT: 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='DATA',dtype='num') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![DATA](/img/Figure_2.png) HOOK STDOUT: HOOK STDOUT: On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Categorical Data ** HOOK STDOUT: HOOK STDOUT: Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='CODE',dtype='cat') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![CODE](/img/Figure_1.png) HOOK STDOUT: HOOK STDOUT: In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: running dist_info HOOK STDOUT: writing wfmap.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to wfmap.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to wfmap.egg-info/requires.txt HOOK STDOUT: writing top-level names to wfmap.egg-info/top_level.txt HOOK STDOUT: reading manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: writing manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: creating '/builddir/build/BUILD/wfmap-0.0.7.dev0/wfmap.dist-info' Handling matplotlib from wheel metadata: Requires-Dist Requirement not satisfied: matplotlib Handling numpy from wheel metadata: Requires-Dist Requirement not satisfied: numpy Handling pandas from wheel metadata: Requires-Dist Requirement not satisfied: pandas Handling seaborn from wheel metadata: Requires-Dist Requirement not satisfied: seaborn + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-wfmap-0.0.7~~dev0-1.fc37.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '3b5b607329094e5aa839b1e0058564bd', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1649462400 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.xdv6pQ + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf wfmap-0.0.7.dev0 + /usr/bin/gzip -dc /builddir/build/SOURCES/wfmap-0.0.7.dev0.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd wfmap-0.0.7.dev0 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.aD98o7 + umask 022 + cd /builddir/build/BUILD + cd wfmap-0.0.7.dev0 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 60.9.3) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.37.1) /usr/lib/python3.10/site-packages/setuptools/dist.py:505: UserWarning: Normalizing '0.0.7.dev' to '0.0.7.dev0' warnings.warn(tmpl.format(**locals())) HOOK STDOUT: # Wafer Heatmap Visualization HOOK STDOUT: HOOK STDOUT: Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. HOOK STDOUT: HOOK STDOUT: This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. HOOK STDOUT: HOOK STDOUT: Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Installation HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: To install wfmap via PyPI using pip: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: pip install wfmap HOOK STDOUT: ``` HOOK STDOUT: or build the latest release from Github: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: git clone https://github.com/xlhaw/wfmap.git HOOK STDOUT: cd wfmap HOOK STDOUT: python setup.py install HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Basic Usage HOOK STDOUT: HOOK STDOUT: For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: import pandas as pd HOOK STDOUT: from wfmap import wafermap HOOK STDOUT: data=pd.read_csv('/data/demo.csv') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Numerical Data** HOOK STDOUT: HOOK STDOUT: 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='DATA',dtype='num') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![DATA](/img/Figure_2.png) HOOK STDOUT: HOOK STDOUT: On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Categorical Data ** HOOK STDOUT: HOOK STDOUT: Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='CODE',dtype='cat') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![CODE](/img/Figure_1.png) HOOK STDOUT: HOOK STDOUT: In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: running egg_info HOOK STDOUT: writing wfmap.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to wfmap.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to wfmap.egg-info/requires.txt HOOK STDOUT: writing top-level names to wfmap.egg-info/top_level.txt HOOK STDOUT: reading manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: writing manifest file 'wfmap.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.37.1) HOOK STDOUT: # Wafer Heatmap Visualization HOOK STDOUT: HOOK STDOUT: Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. HOOK STDOUT: HOOK STDOUT: This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. HOOK STDOUT: HOOK STDOUT: Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Installation HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: To install wfmap via PyPI using pip: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: pip install wfmap HOOK STDOUT: ``` HOOK STDOUT: or build the latest release from Github: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: git clone https://github.com/xlhaw/wfmap.git HOOK STDOUT: cd wfmap HOOK STDOUT: python setup.py install HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Basic Usage HOOK STDOUT: HOOK STDOUT: For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: import pandas as pd HOOK STDOUT: from wfmap import wafermap HOOK STDOUT: data=pd.read_csv('/data/demo.csv') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Numerical Data** HOOK STDOUT: HOOK STDOUT: 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='DATA',dtype='num') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![DATA](/img/Figure_2.png) HOOK STDOUT: HOOK STDOUT: On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Categorical Data ** HOOK STDOUT: HOOK STDOUT: Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='CODE',dtype='cat') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![CODE](/img/Figure_1.png) HOOK STDOUT: HOOK STDOUT: In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: running dist_info HOOK STDOUT: writing wfmap.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to wfmap.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to wfmap.egg-info/requires.txt HOOK STDOUT: writing top-level names to wfmap.egg-info/top_level.txt HOOK STDOUT: reading manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: writing manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: creating '/builddir/build/BUILD/wfmap-0.0.7.dev0/wfmap.dist-info' Handling matplotlib from wheel metadata: Requires-Dist Requirement satisfied: matplotlib (installed: matplotlib 3.5.1) Handling numpy from wheel metadata: Requires-Dist Requirement satisfied: numpy (installed: numpy 1.22.0) Handling pandas from wheel metadata: Requires-Dist Requirement satisfied: pandas (installed: pandas 1.3.3) Handling seaborn from wheel metadata: Requires-Dist Requirement satisfied: seaborn (installed: seaborn 0.11.2) + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-wfmap-0.0.7~~dev0-1.fc37.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'], chrootPath='/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1000gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '87f4673a9f5f45529a143ded67050da9', '-D', '/var/lib/mock/fedora-rawhide-x86_64-1649677686.221811/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.j000oubo:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --target x86_64 --nodeps /builddir/build/SPECS/python-wfmap.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1649462400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.tqAr2Z + umask 022 + cd /builddir/build/BUILD + cd wfmap-0.0.7.dev0 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + '[' -f setup.py ']' + echo 'python3dist(setuptools) >= 40.8' + echo 'python3dist(wheel)' + rm -rfv wfmap.dist-info/ removed 'wfmap.dist-info/METADATA' removed 'wfmap.dist-info/top_level.txt' removed directory 'wfmap.dist-info/' + '[' -f /usr/bin/python3 ']' + RPM_TOXENV=py310 + HOSTNAME=rpmbuild + /usr/bin/python3 -s /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 Handling setuptools >= 40.8 from default build backend Requirement satisfied: setuptools >= 40.8 (installed: setuptools 60.9.3) Handling wheel from default build backend Requirement satisfied: wheel (installed: wheel 0.37.1) /usr/lib/python3.10/site-packages/setuptools/dist.py:505: UserWarning: Normalizing '0.0.7.dev' to '0.0.7.dev0' warnings.warn(tmpl.format(**locals())) HOOK STDOUT: # Wafer Heatmap Visualization HOOK STDOUT: HOOK STDOUT: Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. HOOK STDOUT: HOOK STDOUT: This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. HOOK STDOUT: HOOK STDOUT: Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Installation HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: To install wfmap via PyPI using pip: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: pip install wfmap HOOK STDOUT: ``` HOOK STDOUT: or build the latest release from Github: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: git clone https://github.com/xlhaw/wfmap.git HOOK STDOUT: cd wfmap HOOK STDOUT: python setup.py install HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Basic Usage HOOK STDOUT: HOOK STDOUT: For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: import pandas as pd HOOK STDOUT: from wfmap import wafermap HOOK STDOUT: data=pd.read_csv('/data/demo.csv') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Numerical Data** HOOK STDOUT: HOOK STDOUT: 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='DATA',dtype='num') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![DATA](/img/Figure_2.png) HOOK STDOUT: HOOK STDOUT: On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Categorical Data ** HOOK STDOUT: HOOK STDOUT: Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='CODE',dtype='cat') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![CODE](/img/Figure_1.png) HOOK STDOUT: HOOK STDOUT: In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: running egg_info HOOK STDOUT: creating wfmap.egg-info HOOK STDOUT: writing wfmap.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to wfmap.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to wfmap.egg-info/requires.txt HOOK STDOUT: writing top-level names to wfmap.egg-info/top_level.txt HOOK STDOUT: writing manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: reading manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: writing manifest file 'wfmap.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.37.1) HOOK STDOUT: # Wafer Heatmap Visualization HOOK STDOUT: HOOK STDOUT: Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. HOOK STDOUT: HOOK STDOUT: This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. HOOK STDOUT: HOOK STDOUT: Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Installation HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: To install wfmap via PyPI using pip: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: pip install wfmap HOOK STDOUT: ``` HOOK STDOUT: or build the latest release from Github: HOOK STDOUT: HOOK STDOUT: ```bash HOOK STDOUT: git clone https://github.com/xlhaw/wfmap.git HOOK STDOUT: cd wfmap HOOK STDOUT: python setup.py install HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: ## Basic Usage HOOK STDOUT: HOOK STDOUT: For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: import pandas as pd HOOK STDOUT: from wfmap import wafermap HOOK STDOUT: data=pd.read_csv('/data/demo.csv') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Numerical Data** HOOK STDOUT: HOOK STDOUT: 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='DATA',dtype='num') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![DATA](/img/Figure_2.png) HOOK STDOUT: HOOK STDOUT: On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: **Categorical Data ** HOOK STDOUT: HOOK STDOUT: Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. HOOK STDOUT: HOOK STDOUT: ```python HOOK STDOUT: wafermap(data,value='CODE',dtype='cat') HOOK STDOUT: ``` HOOK STDOUT: HOOK STDOUT: ![CODE](/img/Figure_1.png) HOOK STDOUT: HOOK STDOUT: In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: HOOK STDOUT: running dist_info HOOK STDOUT: writing wfmap.egg-info/PKG-INFO HOOK STDOUT: writing dependency_links to wfmap.egg-info/dependency_links.txt HOOK STDOUT: writing requirements to wfmap.egg-info/requires.txt HOOK STDOUT: writing top-level names to wfmap.egg-info/top_level.txt HOOK STDOUT: reading manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: writing manifest file 'wfmap.egg-info/SOURCES.txt' HOOK STDOUT: creating '/builddir/build/BUILD/wfmap-0.0.7.dev0/wfmap.dist-info' Handling matplotlib from wheel metadata: Requires-Dist Requirement satisfied: matplotlib (installed: matplotlib 3.5.1) Handling numpy from wheel metadata: Requires-Dist Requirement satisfied: numpy (installed: numpy 1.22.0) Handling pandas from wheel metadata: Requires-Dist Requirement satisfied: pandas (installed: pandas 1.3.3) Handling seaborn from wheel metadata: Requires-Dist Requirement satisfied: seaborn (installed: seaborn 0.11.2) + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.lNzNXU + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/wfmap-0.0.7.dev0/.package_note-python-wfmap-0.0.7~~dev0-1.fc37.x86_64.ld' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + '[' -f /usr/lib/rpm/generate-rpm-note.sh ']' + /usr/lib/rpm/generate-rpm-note.sh python-wfmap 0.0.7~~dev0-1.fc37 x86_64 + cd wfmap-0.0.7.dev0 + mkdir -p /builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/wfmap-0.0.7.dev0/.package_note-python-wfmap-0.0.7~~dev0-1.fc37.x86_64.ld' + TMPDIR=/builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir + /usr/bin/python3 -m pip wheel --wheel-dir /builddir/build/BUILD/wfmap-0.0.7.dev0/pyproject-wheeldir --no-deps --use-pep517 --no-build-isolation --disable-pip-version-check --no-clean --progress-bar off --verbose . Processing /builddir/build/BUILD/wfmap-0.0.7.dev0 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) /usr/lib/python3.10/site-packages/setuptools/dist.py:505: UserWarning: Normalizing '0.0.7.dev' to '0.0.7.dev0' warnings.warn(tmpl.format(**locals())) # Wafer Heatmap Visualization Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. ## Installation To install wfmap via PyPI using pip: ```bash pip install wfmap ``` or build the latest release from Github: ```bash git clone https://github.com/xlhaw/wfmap.git cd wfmap python setup.py install ``` ## Basic Usage For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. ```python import pandas as pd from wfmap import wafermap data=pd.read_csv('/data/demo.csv') ``` To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. **Numerical Data** 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: ```python wafermap(data,value='DATA',dtype='num') ``` ![DATA](/img/Figure_2.png) On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. **Categorical Data ** Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. ```python wafermap(data,value='CODE',dtype='cat') ``` ![CODE](/img/Figure_1.png) In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. running dist_info creating /builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info writing /builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info/SOURCES.txt' writing manifest file '/builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-modern-metadata-tn3wu3ey/wfmap.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: wfmap Building wheel for wfmap (pyproject.toml): started Running command Building wheel for wfmap (pyproject.toml) /usr/lib/python3.10/site-packages/setuptools/dist.py:505: UserWarning: Normalizing '0.0.7.dev' to '0.0.7.dev0' warnings.warn(tmpl.format(**locals())) # Wafer Heatmap Visualization Heatmap sometime could be extremely useful, you can gain intuitive insight from the plot which contains information on both location and distribution, and manage to find potential pattern behind it. This package is implemented on the top of _seaborn_, and further customized by _matplotlib_. It provides an easy way to visualize wafer map data, both numerical and categorical data are supported. Before you start, you should have some knowledge on _pandas_ and transform your data into `pd.DataFrame`, then make sure that positional data (x/row,y/col) are included in separate columns and encoded as integer. ## Installation To install wfmap via PyPI using pip: ```bash pip install wfmap ``` or build the latest release from Github: ```bash git clone https://github.com/xlhaw/wfmap.git cd wfmap python setup.py install ``` ## Basic Usage For demonstration, I generate some dummy data under the `/data` folder. Let's load the data at first and explore the usage of this package. ```python import pandas as pd from wfmap import wafermap data=pd.read_csv('/data/demo.csv') ``` To better understand the data, take the first entry for example, it suggests that the _Die#0_ which located at `#11 ` row and `#60` col in wafer map, is `OK` defined by _Defect Code_ and its _Metrics_ is `84.3`. **Numerical Data** 'MAP_ROW' and 'MAP_COL' are the default column name for wafer mapping. If you have preprocessed your data as the same format as I did above. The command required could be as simple as follows: ```python wafermap(data,value='DATA',dtype='num') ``` ![DATA](/img/Figure_2.png) On the left side of heatmap is the horizontal histogram plot of `DATA`, with colorized y-axis and invisible x-axis for visual aesthetics. **Categorical Data ** Similar to above numerical/continuous data, categorical data such as _Defect Code_ `CODE` can also be visualized as below. ```python wafermap(data,value='CODE',dtype='cat') ``` ![CODE](/img/Figure_1.png) In addition to the regular heatmap, I put the histogram subplot and pie chart inset on the right half. For the sake of simplicity, only the ratio of top 5 categories will be annotated. running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/wfmap copying wfmap/__init__.py -> build/lib/wfmap installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/wfmap copying build/lib/wfmap/__init__.py -> build/bdist.linux-x86_64/wheel/wfmap running install_egg_info running egg_info creating wfmap.egg-info writing wfmap.egg-info/PKG-INFO writing dependency_links to wfmap.egg-info/dependency_links.txt writing requirements to wfmap.egg-info/requires.txt writing top-level names to wfmap.egg-info/top_level.txt writing manifest file 'wfmap.egg-info/SOURCES.txt' reading manifest file 'wfmap.egg-info/SOURCES.txt' writing manifest file 'wfmap.egg-info/SOURCES.txt' Copying wfmap.egg-info to build/bdist.linux-x86_64/wheel/wfmap-0.0.7.dev0-py3.10.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/wfmap-0.0.7.dev0.dist-info/WHEEL creating '/builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir/pip-wheel-rbuqp9he/tmpsnov7zdg/wfmap-0.0.7.dev0-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'wfmap/__init__.py' adding 'wfmap-0.0.7.dev0.dist-info/METADATA' adding 'wfmap-0.0.7.dev0.dist-info/WHEEL' adding 'wfmap-0.0.7.dev0.dist-info/top_level.txt' adding 'wfmap-0.0.7.dev0.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Building wheel for wfmap (pyproject.toml): finished with status 'done' Created wheel for wfmap: filename=wfmap-0.0.7.dev0-py3-none-any.whl size=4742 sha256=0857c6b65f00d5dbc4663b72252d68c982d9b0eded6bb4212288b0b4b9cf3f47 Stored in directory: /builddir/.cache/pip/wheels/01/fb/25/d1a9bfd247f3749e515a521b6bb28dca7bfb785aa11a07b2e7 Successfully built wfmap + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.XznKkw + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 ++ dirname /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/wfmap-0.0.7.dev0/.package_note-python-wfmap-0.0.7~~dev0-1.fc37.x86_64.ld' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cd wfmap-0.0.7.dev0 ++ ls /builddir/build/BUILD/wfmap-0.0.7.dev0/pyproject-wheeldir/wfmap-0.0.7.dev0-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' ++ xargs basename --multiple + specifier=wfmap==0.0.7.dev0 + TMPDIR=/builddir/build/BUILD/wfmap-0.0.7.dev0/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/wfmap-0.0.7.dev0/pyproject-wheeldir wfmap==0.0.7.dev0 Using pip 22.0.4 from /usr/lib/python3.10/site-packages/pip (python 3.10) Looking in links: /builddir/build/BUILD/wfmap-0.0.7.dev0/pyproject-wheeldir Processing ./pyproject-wheeldir/wfmap-0.0.7.dev0-py3-none-any.whl Installing collected packages: wfmap Successfully installed wfmap-0.0.7.dev0 + '[' -d /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/bin ']' + rm -f /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages ']' + site_dirs+=("/usr/lib/python3.10/site-packages") + '[' /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib64/python3.10/site-packages '!=' /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages ']' + '[' -d /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib64/python3.10/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.10/site-packages/wfmap-0.0.7.dev0.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages/wfmap-0.0.7.dev0.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 --record /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages/wfmap-0.0.7.dev0.dist-info/RECORD --output /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-record + rm -fv /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages/wfmap-0.0.7.dev0.dist-info/RECORD removed '/builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages/wfmap-0.0.7.dev0.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages/wfmap-0.0.7.dev0.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages/wfmap-0.0.7.dev0.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-files --output-modules /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 --sitelib /usr/lib/python3.10/site-packages --sitearch /usr/lib64/python3.10/site-packages --python-version 3.10 --pyproject-record /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-record --prefix /usr '*' +auto + /usr/bin/find-debuginfo -j2 --strict-build-id -m -i --build-id-seed 0.0.7~~dev0-1.fc37 --unique-debug-suffix -0.0.7~~dev0-1.fc37.x86_64 --unique-debug-src-base python-wfmap-0.0.7~~dev0-1.fc37.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/wfmap-0.0.7.dev0 find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10 using python3.10 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.L4kvkY + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -Wl,-dT,/builddir/build/BUILD/wfmap-0.0.7.dev0/.package_note-python-wfmap-0.0.7~~dev0-1.fc37.x86_64.ld' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + '[' -f /usr/lib/rpm/generate-rpm-note.sh ']' + /usr/lib/rpm/generate-rpm-note.sh python-wfmap 0.0.7~~dev0-1.fc37 x86_64 + cd wfmap-0.0.7.dev0 + '[' '!' -f /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-modules ']' + PATH=/builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib64/python3.10/site-packages:/builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages + _PYTHONSITE=/builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib64/python3.10/site-packages:/builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64/usr/lib/python3.10/site-packages + PYTHONDONTWRITEBYTECODE=1 + /usr/bin/python3 -s /usr/lib/rpm/redhat/import_all_modules.py -f /builddir/build/BUILD/python-wfmap-0.0.7~~dev0-1.fc37.x86_64-pyproject-modules -t Check import: wfmap + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-wfmap-0.0.7~~dev0-1.fc37.noarch Provides: python-wfmap = 0.0.7~~dev0-1.fc37 python3-wfmap = 0.0.7~~dev0-1.fc37 python3.10-wfmap = 0.0.7~~dev0-1.fc37 python3.10dist(wfmap) = 0.0.7~~dev0 python3dist(wfmap) = 0.0.7~~dev0 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.10 python3.10dist(matplotlib) python3.10dist(numpy) python3.10dist(pandas) python3.10dist(seaborn) Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 Wrote: /builddir/build/SRPMS/python-wfmap-0.0.7~~dev0-1.fc37.src.rpm Wrote: /builddir/build/RPMS/python3-wfmap-0.0.7~~dev0-1.fc37.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.CvKIgb + umask 022 + cd /builddir/build/BUILD + cd wfmap-0.0.7.dev0 + /usr/bin/rm -rf /builddir/build/BUILDROOT/python-wfmap-0.0.7~~dev0-1.fc37.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Child return code was: 0