Repository: NVIDIA-Merlin/NVTabular (language: python)

Issue:
[FEA] Add DistributedClient API and use global client objects in Workflow and Dataset
**Is your feature request related to a problem? Please describe.**
In order to perform distributed ETL and/or spill data between device/host/disk, NVTabular currently requires the user to provide a Dask-Distributed (or Dask-CUDA) cluster.  Furthermore, the `nvt.Workflow` (and sometimes `nvt.Dataset`) need to be defined with an explicit `client=` argument in order for the distributed cluster to be used.  Although I feel strongly that it would be dangerous and messy for NVTabular to automatically spin up a distributed cluster by default, I do suspect that the user experience could be much better. 

**Describe the solution you'd like**
To improve the user experience of distributed ETL with NVTabular, I propose:

1. Simple `LocalCluster`/`LocalCUDACluster`-wrapper APIs be added to NVTabular so that users can enable multi-GPU processing and/or spilling without interacting with distributed/dask_cuda. I am not yet sure of the ideal API to expose in NVTabular, but perhaps something like `DistributedClient` (wrapping `distributed.Client`). This API could be used to automatically generate a local cluster (if the address of an existing cluster is not provided), and we could add a `cpu=False` kwarg to toggle between gpu and cpu mode.
2. [**DONE** in #1318] Automatically detect and **use** an existing Dask client object. NVTabular already [checks for a global dask client](https://github.com/NVIDIA-Merlin/NVTabular/blob/34d01d7e6090d6029ac40010ed79e1558f18759c/nvtabular/workflow/workflow.py#L88) in both `Workflow ` and `Dataset`.  However, these checks result in a UserWarning whenever a global client is detected.  Instead of warning the user, I propose that NVTabular automatically **use** the client object when it is detected (which is actually the defult behavior in `dask.dataframe` and `dask.array` anyway).

**Describe alternatives you've considered**
The alternative is to continue requiring the user to deploy Dask clusters/clients with `distributed`/`dask_cuda`, and require them to include an explicit `client` argument when defining an `Workflow` objects.

Deprecate client from Dataset, Workflow, and DatasetInspector
Partially addresses #1249

This PR is intended to improve user experience by removing the need for users to specify a `client` object when one is already defined in the global python context.

TODO:
- [x] Remove `client` usage from examples and benchmarks

<!--

Thank you for contributing to NVTabular :)

Here are some guidelines to help the review process go smoothly.

1. Please write a description in this text box of the changes that are being
   made.

2. Please ensure that you have written units tests for the changes made/features
   added.

3. If you are closing an issue please use one of the automatic closing words as
   noted here: https://help.github.com/articles/closing-issues-using-keywords/

4. If your pull request is not ready for review but you want to make use of the
   continuous integration testing facilities please label it with `[WIP]`.

5. If your pull request is ready to be reviewed without requiring additional
   work on top of it, then remove the `[WIP]` label (if present) and replace
   it with `[REVIEW]`. If assistance is required to complete the functionality,
   for example when the C/C++ code of a feature is complete but Python bindings
   are still required, then add the label `[HELP-REQ]` so that others can triage
   and assist. The additional changes then can be implemented on top of the
   same PR. If the assistance is done by members of the rapidsAI team, then no
   additional actions are required by the creator of the original PR for this,
   otherwise the original author of the PR needs to give permission to the
   person(s) assisting to commit to their personal fork of the project. If that
   doesn't happen then a new PR based on the code of the original PR can be
   opened by the person assisting, which then will be the PR that will be
   merged.

6. Once all work has been done and review has taken place please do not add
   features or make changes out of the scope of those requested by the reviewer
   (doing this just add delays as already reviewed code ends up having to be
   re-reviewed/it is hard to tell what is new etc!). Further, please do not
   rebase your branch on master/force push/rewrite history, doing any of these
   causes the context of any comments made by reviewers to be lost. If
   conflicts occur against master they should be resolved by merging master
   into the branch used for making the pull request.

Many thanks in advance for your cooperation!

-->



Discussion / hints:
I think this is a great idea, and it would be very valuable. All our examples/notebooks would be automatically running in multi-gpu and customers would be able to use multi-gpu with minimum effort and knowledge.

Happy to work into this, unless Rick wants to tackle it.
>Happy to work into this, unless Rick wants to tackle it.

Happy to let you tackle it. We could also split the work if you want. I imagine that it would be best to add features in two distinct PRs: (1) automatically use a global client object, and (2) introduce the `DistributedClient` API (or some other NVT-based mechanism for users to say: "I want distributed execution")
We now have the second part of this issue resolved (automatic client detection/handling).  In resolving this, we added a `nvtabular.utils.set_dask_client(client="auto")` utility.

Perhaps we could use the same machinery to solve the remaining challenge of this issue. That is: Add a `client="new"` option to `set_dask_client`, and suport `cluster_type=` and `cluster_options=` arguments. In the case that the user specifies `client="new"`, we would use `cluster_type` and `cluster_options` to automatically deploy a local cluster and define a new global client.

By default, using `client="new"`would result in a default `LocalCUDACluster` if gpus are detected on the machine (and a default `LocalCluster` otherwise).
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 8caa41c191d8a33b16600e3f192276d7cc233896, has merge conflicts.
Running as SYSTEM
Setting status of 8caa41c191d8a33b16600e3f192276d7cc233896 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3921/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 8caa41c191d8a33b16600e3f192276d7cc233896^{commit} # timeout=10
Checking out Revision 8caa41c191d8a33b16600e3f192276d7cc233896 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 8caa41c191d8a33b16600e3f192276d7cc233896 # timeout=10
Commit message: "deprecate client from Dataset and Workflow, and use global Dask client by default"
 > git rev-list --no-walk b6fc99facfb56907ad52b63cc87f8e2120f17892 # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins7683013686893453203.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
WARNING: Skipping nvtabular as it is not installed.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+7.g8caa41c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+7.g8caa41c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+7.g8caa41c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+7.g8caa41c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+7.g8caa41c is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+7.g8caa41c
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+7.g8caa41c
Running black --check
All done! ✨ 🍰 ✨
154 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.categorify
nvtabular/ops/categorify.py:516:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.fill
nvtabular/ops/fill.py:67:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1581 items / 1 skipped / 1580 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .........F

=================================== FAILURES ===================================
_____________ test_dataset_partition_parquets_schema_load[parquet] _____________

tmpdir = local('/tmp/pytest-of-jenkins/pytest-5/test_dataset_partition_parquet0')
dataset = <nvtabular.io.dataset.Dataset object at 0x7ff74a834fd0>
engine = 'parquet'

    @pytest.mark.parametrize("engine", ["parquet"])
    def test_dataset_partition_parquets_schema_load(tmpdir, dataset, engine):
        dataset.schema.column_schemas["id"] = dataset.schema.column_schemas["id"].with_tags(
            ["categorical"]
        )
>       dataset.to_parquet(str(tmpdir), partition_on=["name-cat"])

tests/unit/test_io.py:109: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
nvtabular/io/dataset.py:902: in to_parquet
    _ddf_to_dataset(
nvtabular/io/dask.py:368: in _ddf_to_dataset
    out = client.compute(out).result()
../../../.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg/distributed/client.py:2926: in compute
    futures_dict = self._graph_to_futures(
../../../.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg/distributed/client.py:2653: in _graph_to_futures
    self._send_to_scheduler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Client: No scheduler connected>
msg = {'actors': None, 'code': 'def _ddf_to_dataset(\n    ddf,\n    fs,\n    output_path,\n    shuffle,\n    file_partition_....highlevelgraph', '__name__': 'MaterializedLayer', 'annotations': {}, 'state': {'dependencies': {}, 'dsk': {}}}]}, ...}

    def _send_to_scheduler(self, msg):
        if self.status in ("running", "closing", "connecting", "newly-created"):
            self.loop.add_callback(self._send_to_scheduler_safe, msg)
        else:
>           raise Exception(
                "Tried sending message after closing.  Status: %s\n"
                "Message: %s" % (self.status, msg)
            )
E           Exception: Tried sending message after closing.  Status: closed
E           Message: {'op': 'update-graph-hlg', 'hlg': {'layers': [{'__module__': 'dask.highlevelgraph', '__name__': 'MaterializedLayer', 'state': {'dsk': {'write-processed-14a7ef8226ffeb4763545d4943dcf6ae': {'function': b'\x80\x04\x95/\x00\x00\x00\x00\x00\x00\x00\x8c\x11nvtabular.io.dask\x94\x8c\x15_write_metadata_files\x94\x93\x94.', 'args': b"\x80\x04\x95\x1e\x01\x00\x00\x00\x00\x00\x00(]\x94(\x8ca('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 0)\x94\x8ca('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 1)\x94e\x8c?/tmp/pytest-of-jenkins/pytest-5/test_dataset_partition_parquet0\x94\x8c\x07parquet\x94\x89Nt\x94."}, "('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 0)": {'function': b'\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x11nvtabular.io.dask\x94\x8c\x12_write_partitioned\x94\x93\x94.', 'args': b"\x80\x04\x95\n\x01\x00\x00\x00\x00\x00\x00(\x8c4('read-parquet-7c14b42f29640426bf0299467447f1d1', 0)\x94\x8c\x0epart.0.parquet\x94\x8c?/tmp/pytest-of-jenkins/pytest-5/test_dataset_partition_parquet0\x94]\x94\x8c\x08name-cat\x94aN\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94]\x94]\x94]\x94\x8c\x07parquet\x94K\x00\x89t\x94."}, "('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 1)": {'function': b'\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x11nvtabular.io.dask\x94\x8c\x12_write_partitioned\x94\x93\x94.', 'args': b"\x80\x04\x95\n\x01\x00\x00\x00\x00\x00\x00(\x8c4('read-parquet-7c14b42f29640426bf0299467447f1d1', 1)\x94\x8c\x0epart.1.parquet\x94\x8c?/tmp/pytest-of-jenkins/pytest-5/test_dataset_partition_parquet0\x94]\x94\x8c\x08name-cat\x94aN\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94]\x94]\x94]\x94\x8c\x07parquet\x94K\x00\x89t\x94."}, "('read-parquet-7c14b42f29640426bf0299467447f1d1', 0)": {'function': b'\x80\x04\x95\xc7\n\x00\x00\x00\x00\x00\x00\x8c\x11dask.optimization\x94\x8c\x10SubgraphCallable\x94\x93\x94(}\x94\x8c-read-parquet-7c14b42f29640426bf0299467447f1d1\x94\x8c\x1edask.dataframe.io.parquet.core\x94\x8c\x16ParquetFunctionWrapper\x94\x93\x94)\x81\x94}\x94(\x8c\x06engine\x94\x8c\x14nvtabular.io.parquet\x94\x8c\x10GPUParquetEngine\x94\x93\x94\x8c\x02fs\x94\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94\x8c\x04meta\x94\x8c\x08builtins\x94\x8c\x07getattr\x94\x93\x94\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94\x8c\x10host_deserialize\x94\x86\x94R\x94}\x94(\x8c\x0ftype-serialized\x94C0\x80\x04\x95%\x00\x00\x00\x00\x00\x00\x00\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94.\x94\x8c\x05index\x94}\x94(\x8c\x0cindex_column\x94}\x94(\x8c\x05start\x94K\x00\x8c\x04stop\x94K\x00\x8c\x04step\x94K\x01u\x8c\x04name\x94C\x04\x80\x04N.\x94\x8c\x05dtype\x94CB\x80\x04\x957\x00\x00\x00\x00\x00\x00\x00\x8c\x05numpy\x94\x8c\x05dtype\x94\x93\x94\x8c\x02i8\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01<\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b.\x94\x8c\x0ftype-serialized\x94C-\x80\x04\x95"\x00\x00\x00\x00\x00\x00\x00\x8c\x0fcudf.core.index\x94\x8c\nRangeIndex\x94\x93\x94.\x94\x8c\x0bframe_count\x94K\x00u\x8c\x11index_frame_count\x94K\x00\x8c\x0ccolumn_names\x94CM\x80\x04\x95B\x00\x00\x00\x00\x00\x00\x00(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94t\x94.\x94\x8c\x07columns\x94(}\x94(\x8c\x0ftype-serialized\x94C;\x80\x04\x950\x00\x00\x00\x00\x00\x00\x00\x8c\x19cudf.core.column.datetime\x94\x8c\x0eDatetimeColumn\x94\x93\x94.\x94h.\x8c\x07<M8[ns]\x94\x8c\x04data\x94}\x94(\x8c\x0ftype-serialized\x94C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94\x8c\x12constructor-kwargs\x94}\x94\x8c\x04desc\x94}\x94(h;K\x00\x89\x86\x94\x8c\x05shape\x94K\x00\x85\x94\x8c\x07strides\x94K\x01\x85\x94\x8c\x07typestr\x94\x8c\x03|u1\x94\x8c\x07version\x94K\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(\x8c\nnull_count\x94K\x00\x8c\x0ftype-serialized\x94C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94\x8c\x04size\x94K\x00\x8c\nsubheaders\x94]\x94h2K\x00u}\x94(h^K\x00h_C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94haK\x00hb]\x94h2K\x00u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01ut\x94\x8c\x07is-cuda\x94]\x94(\x88\x88\x88\x88\x88\x88e\x8c\x07lengths\x94]\x94(K\x00K\x00K\x00K\x00K\x00K\x00e\x8c\twriteable\x94(NNNNNNt\x94u]\x94(\x8c\x15numpy.core.multiarray\x94\x8c\x0c_reconstruct\x94\x93\x94\x8c\x05numpy\x94\x8c\x07ndarray\x94\x93\x94K\x00\x85\x94C\x01b\x94\x87\x94R\x94(K\x01K\x00\x85\x94h\x8dh.\x93\x94\x8c\x02u1\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01|\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b\x89C\x00\x94t\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94be\x86\x94R\x94h6]\x94(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94eh%\x89\x8c\rcommon_kwargs\x94}\x94(\x8c\npartitions\x94N\x8c\ncategories\x94]\x94\x8c\x07filters\x94N\x8c\x07dataset\x94}\x94uub\x8c\x13__dask_blockwise__0\x94\x86\x94sh\x04\x8c\x13__dask_blockwise__0\x94\x85\x94\x8c6subgraph_callable-83fb24d0-1cff-45b6-b523-2b148eca2399\x94t\x94R\x94.', 'args': b'\x80\x04\x95V\x00\x00\x00\x00\x00\x00\x00]\x94}\x94\x8c\x05piece\x94\x8c:/tmp/pytest-of-jenkins/pytest-5/parquet0/dataset-0.parquet\x94]\x94K\x00aN\x87\x94sa\x85\x94.'}, "('read-parquet-7c14b42f29640426bf0299467447f1d1', 1)": {'function': b'\x80\x04\x95\xc7\n\x00\x00\x00\x00\x00\x00\x8c\x11dask.optimization\x94\x8c\x10SubgraphCallable\x94\x93\x94(}\x94\x8c-read-parquet-7c14b42f29640426bf0299467447f1d1\x94\x8c\x1edask.dataframe.io.parquet.core\x94\x8c\x16ParquetFunctionWrapper\x94\x93\x94)\x81\x94}\x94(\x8c\x06engine\x94\x8c\x14nvtabular.io.parquet\x94\x8c\x10GPUParquetEngine\x94\x93\x94\x8c\x02fs\x94\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94\x8c\x04meta\x94\x8c\x08builtins\x94\x8c\x07getattr\x94\x93\x94\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94\x8c\x10host_deserialize\x94\x86\x94R\x94}\x94(\x8c\x0ftype-serialized\x94C0\x80\x04\x95%\x00\x00\x00\x00\x00\x00\x00\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94.\x94\x8c\x05index\x94}\x94(\x8c\x0cindex_column\x94}\x94(\x8c\x05start\x94K\x00\x8c\x04stop\x94K\x00\x8c\x04step\x94K\x01u\x8c\x04name\x94C\x04\x80\x04N.\x94\x8c\x05dtype\x94CB\x80\x04\x957\x00\x00\x00\x00\x00\x00\x00\x8c\x05numpy\x94\x8c\x05dtype\x94\x93\x94\x8c\x02i8\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01<\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b.\x94\x8c\x0ftype-serialized\x94C-\x80\x04\x95"\x00\x00\x00\x00\x00\x00\x00\x8c\x0fcudf.core.index\x94\x8c\nRangeIndex\x94\x93\x94.\x94\x8c\x0bframe_count\x94K\x00u\x8c\x11index_frame_count\x94K\x00\x8c\x0ccolumn_names\x94CM\x80\x04\x95B\x00\x00\x00\x00\x00\x00\x00(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94t\x94.\x94\x8c\x07columns\x94(}\x94(\x8c\x0ftype-serialized\x94C;\x80\x04\x950\x00\x00\x00\x00\x00\x00\x00\x8c\x19cudf.core.column.datetime\x94\x8c\x0eDatetimeColumn\x94\x93\x94.\x94h.\x8c\x07<M8[ns]\x94\x8c\x04data\x94}\x94(\x8c\x0ftype-serialized\x94C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94\x8c\x12constructor-kwargs\x94}\x94\x8c\x04desc\x94}\x94(h;K\x00\x89\x86\x94\x8c\x05shape\x94K\x00\x85\x94\x8c\x07strides\x94K\x01\x85\x94\x8c\x07typestr\x94\x8c\x03|u1\x94\x8c\x07version\x94K\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(\x8c\nnull_count\x94K\x00\x8c\x0ftype-serialized\x94C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94\x8c\x04size\x94K\x00\x8c\nsubheaders\x94]\x94h2K\x00u}\x94(h^K\x00h_C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94haK\x00hb]\x94h2K\x00u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01ut\x94\x8c\x07is-cuda\x94]\x94(\x88\x88\x88\x88\x88\x88e\x8c\x07lengths\x94]\x94(K\x00K\x00K\x00K\x00K\x00K\x00e\x8c\twriteable\x94(NNNNNNt\x94u]\x94(\x8c\x15numpy.core.multiarray\x94\x8c\x0c_reconstruct\x94\x93\x94\x8c\x05numpy\x94\x8c\x07ndarray\x94\x93\x94K\x00\x85\x94C\x01b\x94\x87\x94R\x94(K\x01K\x00\x85\x94h\x8dh.\x93\x94\x8c\x02u1\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01|\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b\x89C\x00\x94t\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94be\x86\x94R\x94h6]\x94(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94eh%\x89\x8c\rcommon_kwargs\x94}\x94(\x8c\npartitions\x94N\x8c\ncategories\x94]\x94\x8c\x07filters\x94N\x8c\x07dataset\x94}\x94uub\x8c\x13__dask_blockwise__0\x94\x86\x94sh\x04\x8c\x13__dask_blockwise__0\x94\x85\x94\x8c6subgraph_callable-83fb24d0-1cff-45b6-b523-2b148eca2399\x94t\x94R\x94.', 'args': b'\x80\x04\x95V\x00\x00\x00\x00\x00\x00\x00]\x94}\x94\x8c\x05piece\x94\x8c:/tmp/pytest-of-jenkins/pytest-5/parquet0/dataset-1.parquet\x94]\x94K\x00aN\x87\x94sa\x85\x94.'}}, 'dependencies': {'write-processed-14a7ef8226ffeb4763545d4943dcf6ae': {"('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 1)", "('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 0)"}, "('read-parquet-7c14b42f29640426bf0299467447f1d1', 0)": set(), "('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 1)": {"('read-parquet-7c14b42f29640426bf0299467447f1d1', 1)"}, "('write-processed-14a7ef8226ffeb4763545d4943dcf6ae-partition14a7ef8226ffeb4763545d4943dcf6ae', 0)": {"('read-parquet-7c14b42f29640426bf0299467447f1d1', 0)"}, "('read-parquet-7c14b42f29640426bf0299467447f1d1', 1)": set()}}, 'annotations': {}}, {'__module__': 'dask.highlevelgraph', '__name__': 'MaterializedLayer', 'state': {'dsk': {}, 'dependencies': {}}, 'annotations': {}}]}, 'keys': ['write-processed-14a7ef8226ffeb4763545d4943dcf6ae'], 'priority': None, 'submitting_task': None, 'fifo_timeout': '60s', 'actors': None, 'code': 'def _ddf_to_dataset(\n    ddf,\n    fs,\n    output_path,\n    shuffle,\n    file_partition_map,\n    out_files_per_proc,\n    cat_names,\n    cont_names,\n    label_names,\n    output_format,\n    num_threads,\n    cpu,\n    suffix="",\n    partition_on=None,\n    schema=None,\n):\n\n    # Construct graph for Dask-based dataset write\n    token = tokenize(\n        ddf, shuffle, out_files_per_proc, cat_names, cont_names, label_names, suffix, partition_on\n    )\n    name = "write-processed-" + token\n    write_name = name + "-partition" + token\n\n    # Check that the data is in the correct place\n    assert isinstance(ddf._meta, pd.DataFrame) is cpu\n\n    dsk = {}\n    task_list = []\n    if partition_on:\n        # Use hive partitioning to write the data\n        cached_writers = False\n        for idx in range(ddf.npartitions):\n            task_list.append((write_name, idx))\n            dsk[task_list[-1]] = (\n                _write_partitioned,\n                (ddf._name, idx),\n                f"part.{idx}{suffix}",\n                output_path,\n                partition_on,\n                shuffle,\n                fs,\n                cat_names,\n                cont_names,\n                label_names,\n                output_format,\n                num_threads,\n                cpu,\n            )\n        dsk[name] = (\n            _write_metadata_files,\n            task_list,\n            output_path,\n            output_format,\n            cpu,\n            schema,\n        )\n    elif file_partition_map is not None:\n        # Use specified mapping of data to output files\n        cached_writers = False\n        full_graph = ddf.dask\n        for fns, parts in file_partition_map.items():\n            # Isolate subgraph for this output file\n            subgraph = DaskSubgraph(full_graph, ddf._name, parts)\n            task_list.append((write_name, str(fns)))\n            dsk[task_list[-1]] = (\n                _write_subgraph,\n                subgraph,\n                fns,\n                output_path,\n                shuffle,\n                fs,\n                cat_names,\n                cont_names,\n                label_names,\n                output_format,\n                num_threads,\n                cpu,\n                suffix,\n            )\n        dsk[name] = (\n            _write_metadata_files,\n            task_list,\n            output_path,\n            output_format,\n            cpu,\n            schema,\n        )\n    else:\n        cached_writers = True\n        for idx in range(ddf.npartitions):\n            key = (write_name, idx)\n            dsk[key] = (\n                _write_output_partition,\n                (ddf._name, idx),\n                output_path,\n                shuffle,\n                out_files_per_proc,\n                fs,\n                cat_names,\n                cont_names,\n                label_names,\n                output_format,\n                num_threads,\n                cpu,\n                suffix,\n            )\n            task_list.append(key)\n        dsk[name] = (lambda x: x, task_list)\n\n    graph = _ensure_optimize_dataframe_graph(\n        dsk=HighLevelGraph.from_collections(name, dsk, dependencies=[ddf]),\n        keys=[name],\n    )\n    out = Delayed(name, graph)\n\n    # Trigger write execution\n    client = global_dask_client()\n    if client:\n        out = client.compute(out).result()\n    else:\n        out = dask.compute(out, scheduler="synchronous")[0]\n\n    if cached_writers:\n        # Follow-up Shuffling and _metadata creation\n        _finish_dataset(client, ddf, output_path, fs, output_format, cpu, schema)\n'}

../../../.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg/distributed/client.py:1031: Exception
=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py::test_dask_workflow_api_dlrm[True-Shuffle.PER_WORKER-True-device-0-parquet-0.1]
tests/unit/test_dask_nvt.py::test_dask_normalize[None-parquet]
tests/unit/test_dask_nvt.py::test_dask_normalize[True-parquet]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
nvtabular/__init__.py                                             18      2      0      0    89%   38-39
nvtabular/dispatch.py                                            341    214    166     14    32%   37-39, 42-46, 51-53, 59-69, 76-77, 101-112, 116-120, 128-130, 135-138, 142-147, 154, 173, 184, 188-202, 207-210, 223-226, 231-234, 239-250, 265-266, 274, 278-280, 285-288, 293-296, 301-305, 311, 318, 346-362, 369-384, 393-403, 408-411, 415-420, 424-433, 437-439, 443-452, 457-483, 503-508, 518, 523, 525, 539-542, 547, 549, 555-557, 570-591, 595-601, 605-607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134    125     90      0     4%   28-32, 69-286
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153    130     89      0    11%   27, 31-32, 38-39, 48-75, 79-93, 103-115, 119-124, 173-185, 188-211, 214-228, 231-239, 242, 249-265, 307-311, 314-344, 347-360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     39     22      0    14%   48-52, 55-71, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32     25     18      0    22%   37-46, 49-54, 74-82, 85-95
nvtabular/framework_utils/torch/models.py                         45     40     30      0     9%   52-82, 85-110
nvtabular/framework_utils/torch/utils.py                          75     66     34      0    12%   22, 25-33, 42-44, 47-55, 58-76, 106-140
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      9     22      3    84%   62-67, 94, 153, 156, 161, 165
nvtabular/graph/node.py                                          278    118    154     20    55%   46, 49, 66, 76-84, 89->92, 107, 116-124, 127-129, 147, 162, 165, 174->177, 210, 231-247, 250-269, 284-288, 312, 330, 339, 347-354, 358-369, 373, 381, 390-398, 406-409, 421-425, 431, 432->415, 438-441, 445, 450-475, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      1      2      0    92%   49
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      4      2      0    73%   24, 45, 48, 52
nvtabular/graph/ops/subtraction.py                                10      3      2      0    75%   25, 28-29
nvtabular/graph/schema.py                                        120     32     59      9    66%   38, 51, 65, 107, 116->118, 119, 121, 124-126, 129-138, 142, 164-166, 170, 172, 193, 196-208
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122     14     58     19    82%   45, 61->68, 62->64, 64->66, 75, 80, 84->86, 87->97, 91, 92->97, 94, 95->97, 118->133, 121-122, 124-127, 129, 169->185, 177, 181
nvtabular/graph/selector.py                                       78     15     40     10    75%   50, 62-67, 90, 97, 103, 105, 114, 117, 121, 126, 133
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/triton/__init__.py                            36     23     14      0    26%   38-57, 61-64, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87     73     58      0    10%   32-33, 52-84, 88-94, 98-105, 109-115, 119-136, 140-150
nvtabular/inference/triton/ensemble.py                           290    259    106      0     8%   68-100, 140-173, 218-262, 266-297, 320-348, 361-369, 386-440, 455-495, 523-563, 569-585, 589-656, 660-686, 690-701, 705-712, 716-717, 723-748, 754-773, 779-803, 808-811
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57     26     22      1    48%   22-23, 48, 65-76, 79, 82, 98-126
nvtabular/io/dask.py                                             181     88     72      9    48%   72-96, 101-128, 147-168, 225, 234-245, 338-357, 370, 374, 379-409, 413-419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61     38     30      1    31%   19-20, 50, 54-58, 61-65, 69, 73-125
nvtabular/io/dataframe_iter.py                                    21     17     14      0    17%   20-24, 27-35, 38-45
nvtabular/io/dataset.py                                          345    158    168     26    52%   48-49, 234, 271, 273, 286, 311-325, 341, 343, 393-394, 399, 403, 406-411, 414-415, 442-522, 537, 569-579, 626-647, 755, 757, 759, 765, 769-771, 773, 774->784, 779-780, 792, 832-836, 848->850, 850->867, 857->853, 868, 873-891, 894-895, 979-992, 1010, 1014, 1046-1051, 1101-1113, 1125-1126, 1149, 1169-1170, 1182-1187
nvtabular/io/dataset_engine.py                                    31      2      6      2    89%   48, 72->70, 74
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45     35     26      0    17%   26-41, 45-58, 62-70, 73-98, 101
nvtabular/io/parquet.py                                          590    204    218     33    61%   34-35, 58, 76, 80->156, 87, 92, 101, 113-127, 140-153, 176, 186->191, 205-206, 223->248, 231, 234->248, 239, 242->248, 279->295, 285-293, 313, 319, 337-339, 343-345, 351-353, 360-384, 412, 415, 427, 435, 544->576, 549-554, 592-597, 635, 696-845, 851-873, 879-890, 908, 912, 916, 921-924, 954, 958-966, 971, 975, 982->984, 1021->exit, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1154-1157, 1177, 1181
nvtabular/io/shuffle.py                                           31     10     18      3    61%   42-49, 62-64
nvtabular/io/writer.py                                           184     47     78     16    69%   24-25, 51, 79, 90, 107-116, 125, 128, 135, 145, 161, 188, 212, 218-226, 236, 243, 252, 256, 260, 267, 285-292, 296, 299-301, 306-310
nvtabular/io/writer_factory.py                                    18      4      8      2    69%   35, 57-60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372    302    154      0    14%   27-28, 45, 68-74, 77, 81, 85, 88, 92-99, 107-119, 123-148, 152-160, 164-168, 171, 175-182, 186, 212-253, 257-262, 266-269, 272-276, 279-282, 285-288, 292-294, 299-307, 311-320, 324-329, 332-349, 352, 355-358, 361-365, 380-407, 411-491, 499-502, 509-518, 549-555, 564-603, 607-634
nvtabular/loader/tensorflow.py                                   168    127     58      0    20%   49-71, 75-97, 104-106, 240-268, 276-277, 285, 293-295, 307-311, 314, 321, 325, 329, 332-341, 344-346, 349-381, 390-400, 404, 408-416, 419-422, 425-429, 432-437, 445-446, 449-462
nvtabular/loader/tf_utils.py                                      57     27     22      6    46%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74, 89-94, 104-117
nvtabular/loader/torch.py                                         87     56     26      0    33%   28-30, 33-39, 90, 110, 113-115, 118-120, 123-131, 134-136, 139, 142, 146, 150, 154-166, 169, 174-179, 182-187, 190-191, 202, 205
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      7      4      0    57%   32, 35, 38, 43-46
nvtabular/ops/bucketize.py                                        37     19     20      2    39%   53-55, 59->exit, 60-65, 72-88, 91, 94
nvtabular/ops/categorify.py                                      655    211    352     81    63%   251, 253, 271, 275, 279, 283, 287, 291, 293, 297, 305, 320, 323-328, 341-342, 371-375, 378, 381-406, 425-426, 432, 442, 463, 466, 486-487, 493-496, 511-516, 572-602, 607->609, 610, 611->613, 617, 619, 628, 707, 709->712, 715, 732, 741-746, 777, 783, 811, 842->845, 846-848, 855-856, 871-875, 876->840, 894, 902, 909-910, 927-928, 933, 936->939, 965, 985-1003, 1019, 1038->1040, 1041-1056, 1058->1061, 1066->1035, 1074-1081, 1082->1084, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1266, 1269, 1274->1296, 1280->1296, 1297-1302, 1305-1306, 1311-1312, 1316, 1319-1327, 1330, 1341-1349, 1352, 1354, 1359->1364, 1363, 1372-1377, 1378->1370, 1385, 1388, 1393-1407, 1412-1424, 1428-1436
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     86     40      0    23%   19-20, 29-30, 73-79, 82-89, 93-115, 120-124, 127-129, 132, 135, 138, 164-193, 202-203, 212-214, 222-238, 247-272, 276-279, 283-284
nvtabular/ops/data_stats.py                                       56     40     24      0    22%   28-32, 35, 39-77, 80-99, 102
nvtabular/ops/difference_lag.py                                   33     14     12      1    49%   60->63, 70-79, 84, 87, 92, 95, 98
nvtabular/ops/dropna.py                                            8      3      2      0    70%   39-41
nvtabular/ops/fill.py                                             91     49     40      4    40%   53-55, 63-67, 73, 75-80, 86-87, 91-94, 114-116, 120-127, 132-133, 137-140, 147, 150-159, 162-165
nvtabular/ops/filter.py                                           20      3      8      3    79%   49, 56, 60
nvtabular/ops/groupby.py                                         128     84     82      6    28%   72, 82-83, 92, 93->95, 95->84, 105-123, 129-134, 137, 140-179, 184-189, 195-209, 216-219, 224-227, 233, 240, 246-253, 259-266
nvtabular/ops/hash_bucket.py                                      40     21     22      2    37%   69, 73, 82-93, 98-102, 105-112, 115, 118
nvtabular/ops/hashed_cross.py                                     36     19     17      1    38%   53, 59-70, 75, 78, 81, 86-91
nvtabular/ops/join_external.py                                    92     75     38      0    15%   20-21, 101-118, 123-179, 182-186, 189-197, 202-207, 211-212, 216-227
nvtabular/ops/join_groupby.py                                    101     17     38      7    78%   106, 108, 115, 121-124, 131-134, 139-141, 205, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39     28     20      0    22%   57-65, 69-78, 83, 88-103
nvtabular/ops/list_slice.py                                       85     58     42      3    25%   21-22, 67-68, 70->73, 74, 80-129, 132, 141-155, 163-185
nvtabular/ops/logop.py                                            19      2      6      1    88%   48-49
nvtabular/ops/moments.py                                          69      1     24      1    98%   71
nvtabular/ops/normalize.py                                        89     30     22      3    63%   72, 77, 82, 89, 97-98, 104, 124-126, 132-140, 146, 153-157, 160-161, 165, 173, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41     28     24      1    25%   47, 54-56, 61-77, 80-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154    110     68      0    21%   166-207, 210-213, 216, 219-230, 233-234, 237-238, 241-245, 249-328, 332-360, 363, 373-382
nvtabular/ops/value_counts.py                                     30     17      6      0    42%   37-53, 56, 59, 62
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251    207     86      0    17%   25-26, 47-49, 52, 57, 60-70, 73, 83-85, 92-101, 111-150, 153-166, 171-179, 182-189, 197-213, 222-252, 256-282, 286-304, 307-316, 320-326, 332-343, 346-349, 357-359, 375-381, 399-407, 412-414, 452-466
nvtabular/tools/dataset_inspector.py                              52     40     24      0    21%   31-40, 50-51, 71-112
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               117     51     50     10    51%   34-35, 39-40, 49, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174, 192-196
nvtabular/worker.py                                               80      7     38      9    86%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111, 129, 136
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      1      4      1    82%   26
nvtabular/workflow/workflow.py                                   227     52    114     13    77%   28-29, 52, 86, 135, 175->178, 194, 200->214, 226-228, 244, 283-311, 329-368, 372, 375-376, 415, 453->452, 500, 512-514, 516-518, 531
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8046   4310   3435    326    42%
Coverage XML written to file coverage.xml

FAIL Required test coverage of 70% not reached. Total coverage: 41.77%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
====== 1 failed, 124 passed, 1 skipped, 15 warnings in 111.93s (0:01:51) =======
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins7269695731697965022.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 1952019acebffe3cba9833f2481b3d0413189d31, no merge conflicts.
Running as SYSTEM
Setting status of 1952019acebffe3cba9833f2481b3d0413189d31 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3922/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 1952019acebffe3cba9833f2481b3d0413189d31^{commit} # timeout=10
Checking out Revision 1952019acebffe3cba9833f2481b3d0413189d31 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 1952019acebffe3cba9833f2481b3d0413189d31 # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk 8caa41c191d8a33b16600e3f192276d7cc233896 # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins8694881468640923727.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
WARNING: Skipping nvtabular as it is not installed.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+9.g1952019 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+9.g1952019 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+9.g1952019 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+9.g1952019 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+9.g1952019 is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+9.g1952019
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+9.g1952019
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.categorify
nvtabular/ops/categorify.py:516:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.fill
nvtabular/ops/fill.py:67:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .........F

=================================== FAILURES ===================================
_____________ test_dataset_partition_parquets_schema_load[parquet] _____________

tmpdir = local('/tmp/pytest-of-jenkins/pytest-6/test_dataset_partition_parquet0')
dataset = <nvtabular.io.dataset.Dataset object at 0x7fae9e165d90>
engine = 'parquet'

    @pytest.mark.parametrize("engine", ["parquet"])
    def test_dataset_partition_parquets_schema_load(tmpdir, dataset, engine):
        dataset.schema.column_schemas["id"] = dataset.schema.column_schemas["id"].with_tags(
            ["categorical"]
        )
>       dataset.to_parquet(str(tmpdir), partition_on=["name-cat"])

tests/unit/test_io.py:109: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
nvtabular/io/dataset.py:902: in to_parquet
    _ddf_to_dataset(
nvtabular/io/dask.py:368: in _ddf_to_dataset
    out = client.compute(out).result()
../../../.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg/distributed/client.py:2926: in compute
    futures_dict = self._graph_to_futures(
../../../.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg/distributed/client.py:2653: in _graph_to_futures
    self._send_to_scheduler(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <Client: No scheduler connected>
msg = {'actors': None, 'code': 'def _ddf_to_dataset(\n    ddf,\n    fs,\n    output_path,\n    shuffle,\n    file_partition_....highlevelgraph', '__name__': 'MaterializedLayer', 'annotations': {}, 'state': {'dependencies': {}, 'dsk': {}}}]}, ...}

    def _send_to_scheduler(self, msg):
        if self.status in ("running", "closing", "connecting", "newly-created"):
            self.loop.add_callback(self._send_to_scheduler_safe, msg)
        else:
>           raise Exception(
                "Tried sending message after closing.  Status: %s\n"
                "Message: %s" % (self.status, msg)
            )
E           Exception: Tried sending message after closing.  Status: closed
E           Message: {'op': 'update-graph-hlg', 'hlg': {'layers': [{'__module__': 'dask.highlevelgraph', '__name__': 'MaterializedLayer', 'state': {'dsk': {'write-processed-433a674c0087a6b757963f8da6611afd': {'function': b'\x80\x04\x95/\x00\x00\x00\x00\x00\x00\x00\x8c\x11nvtabular.io.dask\x94\x8c\x15_write_metadata_files\x94\x93\x94.', 'args': b"\x80\x04\x95\x1e\x01\x00\x00\x00\x00\x00\x00(]\x94(\x8ca('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 0)\x94\x8ca('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 1)\x94e\x8c?/tmp/pytest-of-jenkins/pytest-6/test_dataset_partition_parquet0\x94\x8c\x07parquet\x94\x89Nt\x94."}, "('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 0)": {'function': b'\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x11nvtabular.io.dask\x94\x8c\x12_write_partitioned\x94\x93\x94.', 'args': b"\x80\x04\x95\n\x01\x00\x00\x00\x00\x00\x00(\x8c4('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 0)\x94\x8c\x0epart.0.parquet\x94\x8c?/tmp/pytest-of-jenkins/pytest-6/test_dataset_partition_parquet0\x94]\x94\x8c\x08name-cat\x94aN\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94]\x94]\x94]\x94\x8c\x07parquet\x94K\x00\x89t\x94."}, "('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 1)": {'function': b'\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x11nvtabular.io.dask\x94\x8c\x12_write_partitioned\x94\x93\x94.', 'args': b"\x80\x04\x95\n\x01\x00\x00\x00\x00\x00\x00(\x8c4('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 1)\x94\x8c\x0epart.1.parquet\x94\x8c?/tmp/pytest-of-jenkins/pytest-6/test_dataset_partition_parquet0\x94]\x94\x8c\x08name-cat\x94aN\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94]\x94]\x94]\x94\x8c\x07parquet\x94K\x00\x89t\x94."}, "('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 0)": {'function': b'\x80\x04\x95\xc7\n\x00\x00\x00\x00\x00\x00\x8c\x11dask.optimization\x94\x8c\x10SubgraphCallable\x94\x93\x94(}\x94\x8c-read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2\x94\x8c\x1edask.dataframe.io.parquet.core\x94\x8c\x16ParquetFunctionWrapper\x94\x93\x94)\x81\x94}\x94(\x8c\x06engine\x94\x8c\x14nvtabular.io.parquet\x94\x8c\x10GPUParquetEngine\x94\x93\x94\x8c\x02fs\x94\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94\x8c\x04meta\x94\x8c\x08builtins\x94\x8c\x07getattr\x94\x93\x94\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94\x8c\x10host_deserialize\x94\x86\x94R\x94}\x94(\x8c\x0ftype-serialized\x94C0\x80\x04\x95%\x00\x00\x00\x00\x00\x00\x00\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94.\x94\x8c\x05index\x94}\x94(\x8c\x0cindex_column\x94}\x94(\x8c\x05start\x94K\x00\x8c\x04stop\x94K\x00\x8c\x04step\x94K\x01u\x8c\x04name\x94C\x04\x80\x04N.\x94\x8c\x05dtype\x94CB\x80\x04\x957\x00\x00\x00\x00\x00\x00\x00\x8c\x05numpy\x94\x8c\x05dtype\x94\x93\x94\x8c\x02i8\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01<\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b.\x94\x8c\x0ftype-serialized\x94C-\x80\x04\x95"\x00\x00\x00\x00\x00\x00\x00\x8c\x0fcudf.core.index\x94\x8c\nRangeIndex\x94\x93\x94.\x94\x8c\x0bframe_count\x94K\x00u\x8c\x11index_frame_count\x94K\x00\x8c\x0ccolumn_names\x94CM\x80\x04\x95B\x00\x00\x00\x00\x00\x00\x00(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94t\x94.\x94\x8c\x07columns\x94(}\x94(\x8c\x0ftype-serialized\x94C;\x80\x04\x950\x00\x00\x00\x00\x00\x00\x00\x8c\x19cudf.core.column.datetime\x94\x8c\x0eDatetimeColumn\x94\x93\x94.\x94h.\x8c\x07<M8[ns]\x94\x8c\x04data\x94}\x94(\x8c\x0ftype-serialized\x94C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94\x8c\x12constructor-kwargs\x94}\x94\x8c\x04desc\x94}\x94(h;K\x00\x89\x86\x94\x8c\x05shape\x94K\x00\x85\x94\x8c\x07strides\x94K\x01\x85\x94\x8c\x07typestr\x94\x8c\x03|u1\x94\x8c\x07version\x94K\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(\x8c\nnull_count\x94K\x00\x8c\x0ftype-serialized\x94C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94\x8c\x04size\x94K\x00\x8c\nsubheaders\x94]\x94h2K\x00u}\x94(h^K\x00h_C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94haK\x00hb]\x94h2K\x00u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01ut\x94\x8c\x07is-cuda\x94]\x94(\x88\x88\x88\x88\x88\x88e\x8c\x07lengths\x94]\x94(K\x00K\x00K\x00K\x00K\x00K\x00e\x8c\twriteable\x94(NNNNNNt\x94u]\x94(\x8c\x15numpy.core.multiarray\x94\x8c\x0c_reconstruct\x94\x93\x94\x8c\x05numpy\x94\x8c\x07ndarray\x94\x93\x94K\x00\x85\x94C\x01b\x94\x87\x94R\x94(K\x01K\x00\x85\x94h\x8dh.\x93\x94\x8c\x02u1\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01|\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b\x89C\x00\x94t\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94be\x86\x94R\x94h6]\x94(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94eh%\x89\x8c\rcommon_kwargs\x94}\x94(\x8c\npartitions\x94N\x8c\ncategories\x94]\x94\x8c\x07filters\x94N\x8c\x07dataset\x94}\x94uub\x8c\x13__dask_blockwise__0\x94\x86\x94sh\x04\x8c\x13__dask_blockwise__0\x94\x85\x94\x8c6subgraph_callable-636f37aa-e6e0-43b9-805c-0c0d096a5580\x94t\x94R\x94.', 'args': b'\x80\x04\x95V\x00\x00\x00\x00\x00\x00\x00]\x94}\x94\x8c\x05piece\x94\x8c:/tmp/pytest-of-jenkins/pytest-6/parquet0/dataset-0.parquet\x94]\x94K\x00aN\x87\x94sa\x85\x94.'}, "('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 1)": {'function': b'\x80\x04\x95\xc7\n\x00\x00\x00\x00\x00\x00\x8c\x11dask.optimization\x94\x8c\x10SubgraphCallable\x94\x93\x94(}\x94\x8c-read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2\x94\x8c\x1edask.dataframe.io.parquet.core\x94\x8c\x16ParquetFunctionWrapper\x94\x93\x94)\x81\x94}\x94(\x8c\x06engine\x94\x8c\x14nvtabular.io.parquet\x94\x8c\x10GPUParquetEngine\x94\x93\x94\x8c\x02fs\x94\x8c\x0bfsspec.spec\x94\x8c\rmake_instance\x94\x93\x94\x8c\x1cfsspec.implementations.local\x94\x8c\x0fLocalFileSystem\x94\x93\x94)}\x94\x87\x94R\x94\x8c\x04meta\x94\x8c\x08builtins\x94\x8c\x07getattr\x94\x93\x94\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94\x8c\x10host_deserialize\x94\x86\x94R\x94}\x94(\x8c\x0ftype-serialized\x94C0\x80\x04\x95%\x00\x00\x00\x00\x00\x00\x00\x8c\x13cudf.core.dataframe\x94\x8c\tDataFrame\x94\x93\x94.\x94\x8c\x05index\x94}\x94(\x8c\x0cindex_column\x94}\x94(\x8c\x05start\x94K\x00\x8c\x04stop\x94K\x00\x8c\x04step\x94K\x01u\x8c\x04name\x94C\x04\x80\x04N.\x94\x8c\x05dtype\x94CB\x80\x04\x957\x00\x00\x00\x00\x00\x00\x00\x8c\x05numpy\x94\x8c\x05dtype\x94\x93\x94\x8c\x02i8\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01<\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b.\x94\x8c\x0ftype-serialized\x94C-\x80\x04\x95"\x00\x00\x00\x00\x00\x00\x00\x8c\x0fcudf.core.index\x94\x8c\nRangeIndex\x94\x93\x94.\x94\x8c\x0bframe_count\x94K\x00u\x8c\x11index_frame_count\x94K\x00\x8c\x0ccolumn_names\x94CM\x80\x04\x95B\x00\x00\x00\x00\x00\x00\x00(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94t\x94.\x94\x8c\x07columns\x94(}\x94(\x8c\x0ftype-serialized\x94C;\x80\x04\x950\x00\x00\x00\x00\x00\x00\x00\x8c\x19cudf.core.column.datetime\x94\x8c\x0eDatetimeColumn\x94\x93\x94.\x94h.\x8c\x07<M8[ns]\x94\x8c\x04data\x94}\x94(\x8c\x0ftype-serialized\x94C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94\x8c\x12constructor-kwargs\x94}\x94\x8c\x04desc\x94}\x94(h;K\x00\x89\x86\x94\x8c\x05shape\x94K\x00\x85\x94\x8c\x07strides\x94K\x01\x85\x94\x8c\x07typestr\x94\x8c\x03|u1\x94\x8c\x07version\x94K\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<i8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(\x8c\nnull_count\x94K\x00\x8c\x0ftype-serialized\x94C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94\x8c\x04size\x94K\x00\x8c\nsubheaders\x94]\x94h2K\x00u}\x94(h^K\x00h_C7\x80\x04\x95,\x00\x00\x00\x00\x00\x00\x00\x8c\x17cudf.core.column.string\x94\x8c\x0cStringColumn\x94\x93\x94.\x94haK\x00hb]\x94h2K\x00u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01u}\x94(h8C=\x80\x04\x952\x00\x00\x00\x00\x00\x00\x00\x8c\x1acudf.core.column.numerical\x94\x8c\x0fNumericalColumn\x94\x93\x94.\x94h.\x8c\x03<f8\x94h;}\x94(h=C*\x80\x04\x95\x1f\x00\x00\x00\x00\x00\x00\x00\x8c\x10cudf.core.buffer\x94\x8c\x06Buffer\x94\x93\x94.\x94h?}\x94hA}\x94(h;K\x00\x89\x86\x94hDK\x00\x85\x94hFhGhHhIhJK\x00uuh2K\x01ut\x94\x8c\x07is-cuda\x94]\x94(\x88\x88\x88\x88\x88\x88e\x8c\x07lengths\x94]\x94(K\x00K\x00K\x00K\x00K\x00K\x00e\x8c\twriteable\x94(NNNNNNt\x94u]\x94(\x8c\x15numpy.core.multiarray\x94\x8c\x0c_reconstruct\x94\x93\x94\x8c\x05numpy\x94\x8c\x07ndarray\x94\x93\x94K\x00\x85\x94C\x01b\x94\x87\x94R\x94(K\x01K\x00\x85\x94h\x8dh.\x93\x94\x8c\x02u1\x94\x89\x88\x87\x94R\x94(K\x03\x8c\x01|\x94NNNJ\xff\xff\xff\xffJ\xff\xff\xff\xffK\x00t\x94b\x89C\x00\x94t\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94bh\x8ch\x8fK\x00\x85\x94h\x91\x87\x94R\x94(K\x01K\x00\x85\x94h\x98\x89h\x9bt\x94be\x86\x94R\x94h6]\x94(\x8c\ttimestamp\x94\x8c\x02id\x94\x8c\x05label\x94\x8c\x08name-cat\x94\x8c\x0bname-string\x94\x8c\x01x\x94\x8c\x01y\x94\x8c\x01z\x94eh%\x89\x8c\rcommon_kwargs\x94}\x94(\x8c\npartitions\x94N\x8c\ncategories\x94]\x94\x8c\x07filters\x94N\x8c\x07dataset\x94}\x94uub\x8c\x13__dask_blockwise__0\x94\x86\x94sh\x04\x8c\x13__dask_blockwise__0\x94\x85\x94\x8c6subgraph_callable-636f37aa-e6e0-43b9-805c-0c0d096a5580\x94t\x94R\x94.', 'args': b'\x80\x04\x95V\x00\x00\x00\x00\x00\x00\x00]\x94}\x94\x8c\x05piece\x94\x8c:/tmp/pytest-of-jenkins/pytest-6/parquet0/dataset-1.parquet\x94]\x94K\x00aN\x87\x94sa\x85\x94.'}}, 'dependencies': {"('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 1)": {"('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 1)"}, 'write-processed-433a674c0087a6b757963f8da6611afd': {"('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 0)", "('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 1)"}, "('write-processed-433a674c0087a6b757963f8da6611afd-partition433a674c0087a6b757963f8da6611afd', 0)": {"('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 0)"}, "('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 1)": set(), "('read-parquet-bc12ebef547c5083ec0a1b25c68d2ac2', 0)": set()}}, 'annotations': {}}, {'__module__': 'dask.highlevelgraph', '__name__': 'MaterializedLayer', 'state': {'dsk': {}, 'dependencies': {}}, 'annotations': {}}]}, 'keys': ['write-processed-433a674c0087a6b757963f8da6611afd'], 'priority': None, 'submitting_task': None, 'fifo_timeout': '60s', 'actors': None, 'code': 'def _ddf_to_dataset(\n    ddf,\n    fs,\n    output_path,\n    shuffle,\n    file_partition_map,\n    out_files_per_proc,\n    cat_names,\n    cont_names,\n    label_names,\n    output_format,\n    num_threads,\n    cpu,\n    suffix="",\n    partition_on=None,\n    schema=None,\n):\n\n    # Construct graph for Dask-based dataset write\n    token = tokenize(\n        ddf, shuffle, out_files_per_proc, cat_names, cont_names, label_names, suffix, partition_on\n    )\n    name = "write-processed-" + token\n    write_name = name + "-partition" + token\n\n    # Check that the data is in the correct place\n    assert isinstance(ddf._meta, pd.DataFrame) is cpu\n\n    dsk = {}\n    task_list = []\n    if partition_on:\n        # Use hive partitioning to write the data\n        cached_writers = False\n        for idx in range(ddf.npartitions):\n            task_list.append((write_name, idx))\n            dsk[task_list[-1]] = (\n                _write_partitioned,\n                (ddf._name, idx),\n                f"part.{idx}{suffix}",\n                output_path,\n                partition_on,\n                shuffle,\n                fs,\n                cat_names,\n                cont_names,\n                label_names,\n                output_format,\n                num_threads,\n                cpu,\n            )\n        dsk[name] = (\n            _write_metadata_files,\n            task_list,\n            output_path,\n            output_format,\n            cpu,\n            schema,\n        )\n    elif file_partition_map is not None:\n        # Use specified mapping of data to output files\n        cached_writers = False\n        full_graph = ddf.dask\n        for fns, parts in file_partition_map.items():\n            # Isolate subgraph for this output file\n            subgraph = DaskSubgraph(full_graph, ddf._name, parts)\n            task_list.append((write_name, str(fns)))\n            dsk[task_list[-1]] = (\n                _write_subgraph,\n                subgraph,\n                fns,\n                output_path,\n                shuffle,\n                fs,\n                cat_names,\n                cont_names,\n                label_names,\n                output_format,\n                num_threads,\n                cpu,\n                suffix,\n            )\n        dsk[name] = (\n            _write_metadata_files,\n            task_list,\n            output_path,\n            output_format,\n            cpu,\n            schema,\n        )\n    else:\n        cached_writers = True\n        for idx in range(ddf.npartitions):\n            key = (write_name, idx)\n            dsk[key] = (\n                _write_output_partition,\n                (ddf._name, idx),\n                output_path,\n                shuffle,\n                out_files_per_proc,\n                fs,\n                cat_names,\n                cont_names,\n                label_names,\n                output_format,\n                num_threads,\n                cpu,\n                suffix,\n            )\n            task_list.append(key)\n        dsk[name] = (lambda x: x, task_list)\n\n    graph = _ensure_optimize_dataframe_graph(\n        dsk=HighLevelGraph.from_collections(name, dsk, dependencies=[ddf]),\n        keys=[name],\n    )\n    out = Delayed(name, graph)\n\n    # Trigger write execution\n    client = global_dask_client()\n    if client:\n        out = client.compute(out).result()\n    else:\n        out = dask.compute(out, scheduler="synchronous")[0]\n\n    if cached_writers:\n        # Follow-up Shuffling and _metadata creation\n        _finish_dataset(client, ddf, output_path, fs, output_format, cpu, schema)\n'}

../../../.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg/distributed/client.py:1031: Exception
=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py::test_dask_workflow_api_dlrm[True-Shuffle.PER_WORKER-True-device-0-parquet-0.1]
tests/unit/test_dask_nvt.py::test_dask_normalize[None-parquet]
tests/unit/test_dask_nvt.py::test_dask_normalize[True-parquet]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
nvtabular/__init__.py                                             18      2      0      0    89%   38-39
nvtabular/dispatch.py                                            341    214    166     14    32%   37-39, 42-46, 51-53, 59-69, 76-77, 101-112, 116-120, 128-130, 135-138, 142-147, 154, 173, 184, 188-202, 207-210, 223-226, 231-234, 239-250, 265-266, 274, 278-280, 285-288, 293-296, 301-305, 311, 318, 346-362, 369-384, 393-403, 408-411, 415-420, 424-433, 437-439, 443-452, 457-483, 503-508, 518, 523, 525, 539-542, 547, 549, 555-557, 570-591, 595-601, 605-607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134    125     90      0     4%   28-32, 69-286
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153    130     89      0    11%   27, 31-32, 38-39, 48-75, 79-93, 103-115, 119-124, 173-185, 188-211, 214-228, 231-239, 242, 249-265, 307-311, 314-344, 347-360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     39     22      0    14%   48-52, 55-71, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32     25     18      0    22%   37-46, 49-54, 74-82, 85-95
nvtabular/framework_utils/torch/models.py                         45     40     30      0     9%   52-82, 85-110
nvtabular/framework_utils/torch/utils.py                          75     66     34      0    12%   22, 25-33, 42-44, 47-55, 58-76, 106-140
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      9     22      3    84%   62-67, 94, 153, 156, 161, 165
nvtabular/graph/graph.py                                          55      1     36      2    97%   47, 109->108
nvtabular/graph/node.py                                          278    118    154     20    55%   46, 49, 66, 76-84, 89->92, 107, 116-124, 127-129, 147, 162, 165, 174->177, 210, 231-247, 250-269, 284-288, 312, 330, 339, 347-354, 358-369, 373, 381, 390-398, 406-409, 421-425, 431, 432->415, 438-441, 445, 450-475, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      1      2      0    92%   49
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      4      2      0    73%   24, 45, 48, 52
nvtabular/graph/ops/subtraction.py                                10      3      2      0    75%   25, 28-29
nvtabular/graph/schema.py                                        120     32     59      9    66%   38, 51, 65, 107, 116->118, 119, 121, 124-126, 129-138, 142, 166-168, 172, 174, 195, 198-210
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122     14     58     19    82%   45, 61->68, 62->64, 64->66, 75, 80, 84->86, 87->97, 91, 92->97, 94, 95->97, 118->133, 121-122, 124-127, 129, 169->185, 177, 181
nvtabular/graph/selector.py                                       78     15     40     10    75%   50, 62-67, 90, 97, 103, 105, 114, 117, 121, 126, 133
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55     43     10      0    22%   32-35, 38-64, 68-96
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21     15      8      0    28%   22-34, 37-39, 42-43
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29     11     12      0    59%   8, 11-15, 18, 21-22, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       41     28     14      0    27%   28-29, 33, 37-40, 43-75
nvtabular/inference/graph/ops/workflow.py                         36     24     10      0    30%   34-38, 41-50, 54-78, 89
nvtabular/inference/triton/__init__.py                            36     23     14      0    26%   38-57, 61-64, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87     73     58      0    10%   32-33, 52-84, 88-94, 98-105, 109-115, 119-136, 140-150
nvtabular/inference/triton/ensemble.py                           290    259    106      0     8%   67-99, 139-172, 217-261, 265-296, 319-347, 360-368, 385-439, 454-494, 522-562, 568-584, 588-655, 659-685, 689-700, 704-711, 715-716, 722-747, 753-772, 778-802, 807-810
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57     26     22      1    48%   22-23, 48, 65-76, 79, 82, 98-126
nvtabular/io/dask.py                                             181     88     72      9    48%   72-96, 101-128, 147-168, 225, 234-245, 338-357, 370, 374, 379-409, 413-419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61     38     30      1    31%   19-20, 50, 54-58, 61-65, 69, 73-125
nvtabular/io/dataframe_iter.py                                    21     17     14      0    17%   20-24, 27-35, 38-45
nvtabular/io/dataset.py                                          345    158    168     26    52%   48-49, 234, 271, 273, 286, 311-325, 341, 343, 393-394, 399, 403, 406-411, 414-415, 442-522, 537, 569-579, 626-647, 755, 757, 759, 765, 769-771, 773, 774->784, 779-780, 792, 832-836, 848->850, 850->867, 857->853, 868, 873-891, 894-895, 979-992, 1010, 1014, 1046-1051, 1101-1113, 1125-1126, 1149, 1169-1170, 1182-1187
nvtabular/io/dataset_engine.py                                    31      2      6      2    89%   48, 72->70, 74
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45     35     26      0    17%   26-41, 45-58, 62-70, 73-98, 101
nvtabular/io/parquet.py                                          590    204    218     33    61%   34-35, 58, 76, 80->156, 87, 92, 101, 113-127, 140-153, 176, 186->191, 205-206, 223->248, 231, 234->248, 239, 242->248, 279->295, 285-293, 313, 319, 337-339, 343-345, 351-353, 360-384, 412, 415, 427, 435, 544->576, 549-554, 592-597, 635, 696-845, 851-873, 879-890, 908, 912, 916, 921-924, 954, 958-966, 971, 975, 982->984, 1021->exit, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1154-1157, 1177, 1181
nvtabular/io/shuffle.py                                           31     10     18      3    61%   42-49, 62-64
nvtabular/io/writer.py                                           184     47     78     16    69%   24-25, 51, 79, 90, 107-116, 125, 128, 135, 145, 161, 188, 212, 218-226, 236, 243, 252, 256, 260, 267, 285-292, 296, 299-301, 306-310
nvtabular/io/writer_factory.py                                    18      4      8      2    69%   35, 57-60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372    302    154      0    14%   27-28, 45, 68-74, 77, 81, 85, 88, 92-99, 107-119, 123-148, 152-160, 164-168, 171, 175-182, 186, 212-253, 257-262, 266-269, 272-276, 279-282, 285-288, 292-294, 299-307, 311-320, 324-329, 332-349, 352, 355-358, 361-365, 380-407, 411-491, 499-502, 509-518, 549-555, 564-603, 607-634
nvtabular/loader/tensorflow.py                                   168    127     58      0    20%   49-71, 75-97, 104-106, 240-268, 276-277, 285, 293-295, 307-311, 314, 321, 325, 329, 332-341, 344-346, 349-381, 390-400, 404, 408-416, 419-422, 425-429, 432-437, 445-446, 449-462
nvtabular/loader/tf_utils.py                                      57     27     22      6    46%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74, 89-94, 104-117
nvtabular/loader/torch.py                                         87     56     26      0    33%   28-30, 33-39, 90, 110, 113-115, 118-120, 123-131, 134-136, 139, 142, 146, 150, 154-166, 169, 174-179, 182-187, 190-191, 202, 205
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      7      4      0    57%   32, 35, 38, 43-46
nvtabular/ops/bucketize.py                                        37     19     20      2    39%   53-55, 59->exit, 60-65, 72-88, 91, 94
nvtabular/ops/categorify.py                                      655    211    352     81    63%   251, 253, 271, 275, 279, 283, 287, 291, 293, 297, 305, 320, 323-328, 341-342, 371-375, 378, 381-406, 425-426, 432, 442, 463, 466, 486-487, 493-496, 511-516, 572-602, 607->609, 610, 611->613, 617, 619, 628, 707, 709->712, 715, 732, 741-746, 777, 783, 811, 842->845, 846-848, 855-856, 871-875, 876->840, 894, 902, 909-910, 927-928, 933, 936->939, 965, 985-1003, 1019, 1038->1040, 1041-1056, 1058->1061, 1066->1035, 1074-1081, 1082->1084, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1266, 1269, 1274->1296, 1280->1296, 1297-1302, 1305-1306, 1311-1312, 1316, 1319-1327, 1330, 1341-1349, 1352, 1354, 1359->1364, 1363, 1372-1377, 1378->1370, 1385, 1388, 1393-1407, 1412-1424, 1428-1436
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     86     40      0    23%   19-20, 29-30, 73-79, 82-89, 93-115, 120-124, 127-129, 132, 135, 138, 164-193, 202-203, 212-214, 222-238, 247-272, 276-279, 283-284
nvtabular/ops/data_stats.py                                       56     40     24      0    22%   28-32, 35, 39-77, 80-99, 102
nvtabular/ops/difference_lag.py                                   33     14     12      1    49%   60->63, 70-79, 84, 87, 92, 95, 98
nvtabular/ops/dropna.py                                            8      3      2      0    70%   39-41
nvtabular/ops/fill.py                                             91     49     40      4    40%   53-55, 63-67, 73, 75-80, 86-87, 91-94, 114-116, 120-127, 132-133, 137-140, 147, 150-159, 162-165
nvtabular/ops/filter.py                                           20      3      8      3    79%   49, 56, 60
nvtabular/ops/groupby.py                                         128     84     82      6    28%   72, 82-83, 92, 93->95, 95->84, 105-123, 129-134, 137, 140-179, 184-189, 195-209, 216-219, 224-227, 233, 240, 246-253, 259-266
nvtabular/ops/hash_bucket.py                                      40     21     22      2    37%   69, 73, 82-93, 98-102, 105-112, 115, 118
nvtabular/ops/hashed_cross.py                                     36     19     17      1    38%   53, 59-70, 75, 78, 81, 86-91
nvtabular/ops/join_external.py                                    92     75     38      0    15%   20-21, 101-118, 123-179, 182-186, 189-197, 202-207, 211-212, 216-227
nvtabular/ops/join_groupby.py                                    101     17     38      7    78%   106, 108, 115, 121-124, 131-134, 139-141, 205, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39     28     20      0    22%   57-65, 69-78, 83, 88-103
nvtabular/ops/list_slice.py                                       85     58     42      3    25%   21-22, 67-68, 70->73, 74, 80-129, 132, 141-155, 163-185
nvtabular/ops/logop.py                                            19      2      6      1    88%   48-49
nvtabular/ops/moments.py                                          69      1     24      1    98%   71
nvtabular/ops/normalize.py                                        89     30     22      3    63%   72, 77, 82, 89, 97-98, 104, 124-126, 132-140, 146, 153-157, 160-161, 165, 173, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41     28     24      1    25%   47, 54-56, 61-77, 80-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154    110     68      0    21%   166-207, 210-213, 216, 219-230, 233-234, 237-238, 241-245, 249-328, 332-360, 363, 373-382
nvtabular/ops/value_counts.py                                     30     17      6      0    42%   37-53, 56, 59, 62
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251    207     86      0    17%   25-26, 47-49, 52, 57, 60-70, 73, 83-85, 92-101, 111-150, 153-166, 171-179, 182-189, 197-213, 222-252, 256-282, 286-304, 307-316, 320-326, 332-343, 346-349, 357-359, 375-381, 399-407, 412-414, 452-466
nvtabular/tools/dataset_inspector.py                              52     40     24      0    21%   31-40, 50-51, 71-112
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               117     51     50     10    51%   34-35, 39-40, 49, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174, 192-196
nvtabular/worker.py                                               80      7     38      9    86%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111, 129, 136
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      1      4      1    82%   26
nvtabular/workflow/workflow.py                                   201     54     84     11    73%   28-29, 51, 84, 117-118, 122, 150->153, 169, 175->189, 201-203, 219, 259-287, 305-344, 348, 351-352, 369, 445, 457-459, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8263   4434   3497    326    42%
Coverage XML written to file coverage.xml

FAIL Required test coverage of 70% not reached. Total coverage: 41.76%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
====== 1 failed, 124 passed, 1 skipped, 15 warnings in 111.87s (0:01:51) =======
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins6066165644835997325.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 922012c52030b9cd38b4d09d914b7e257b032fe4, no merge conflicts.
Running as SYSTEM
Setting status of 922012c52030b9cd38b4d09d914b7e257b032fe4 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3923/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 922012c52030b9cd38b4d09d914b7e257b032fe4^{commit} # timeout=10
Checking out Revision 922012c52030b9cd38b4d09d914b7e257b032fe4 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 922012c52030b9cd38b4d09d914b7e257b032fe4 # timeout=10
Commit message: "fix closed scheduler bug"
 > git rev-list --no-walk 1952019acebffe3cba9833f2481b3d0413189d31 # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins9048297398531989158.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
WARNING: Skipping nvtabular as it is not installed.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+10.g922012c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+10.g922012c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+10.g922012c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+10.g922012c -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+10.g922012c is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+10.g922012c
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+10.g922012c
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.categorify
nvtabular/ops/categorify.py:516:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.fill
nvtabular/ops/fill.py:67:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 19%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py .....F

=================================== FAILURES ===================================
__________________________ test_multigpu_dask_example __________________________

tmpdir = local('/tmp/pytest-of-jenkins/pytest-7/test_multigpu_dask_example0')

    def test_multigpu_dask_example(tmpdir):
        with get_cuda_cluster() as cuda_cluster:
            os.environ["BASE_DIR"] = str(tmpdir)
            scheduler_port = cuda_cluster.scheduler_address
    
            def _nb_modify(line):
                # Use cuda_cluster "fixture" port rather than allowing notebook
                # to deploy a LocalCUDACluster within the subprocess
                line = line.replace("cluster = None", f"cluster = '{scheduler_port}'")
                # Use a much smaller "toy" dataset
                line = line.replace("write_count = 25", "write_count = 4")
                line = line.replace('freq = "1s"', 'freq = "1h"')
                # Use smaller partitions for smaller dataset
                line = line.replace("part_mem_fraction=0.1", "part_size=1_000_000")
                line = line.replace("out_files_per_proc=8", "out_files_per_proc=1")
                return line
    
            notebook_path = os.path.join(
                dirname(TEST_PATH), "examples/multi-gpu-toy-example/", "multi-gpu_dask.ipynb"
            )
>           _run_notebook(tmpdir, notebook_path, _nb_modify)

tests/unit/test_notebooks.py:287: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/unit/test_notebooks.py:307: in _run_notebook
    subprocess.check_output([sys.executable, script_path])
/usr/lib/python3.8/subprocess.py:415: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

input = None, capture_output = False, timeout = None, check = True
popenargs = (['/usr/bin/python3', '/tmp/pytest-of-jenkins/pytest-7/test_multigpu_dask_example0/notebook.py'],)
kwargs = {'stdout': -1}, process = <subprocess.Popen object at 0x7f3b9779fa30>
stdout = b'', stderr = None, retcode = 1

    def run(*popenargs,
            input=None, capture_output=False, timeout=None, check=False, **kwargs):
        """Run command with arguments and return a CompletedProcess instance.
    
        The returned instance will have attributes args, returncode, stdout and
        stderr. By default, stdout and stderr are not captured, and those attributes
        will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
    
        If check is True and the exit code was non-zero, it raises a
        CalledProcessError. The CalledProcessError object will have the return code
        in the returncode attribute, and output & stderr attributes if those streams
        were captured.
    
        If timeout is given, and the process takes too long, a TimeoutExpired
        exception will be raised.
    
        There is an optional argument "input", allowing you to
        pass bytes or a string to the subprocess's stdin.  If you use this argument
        you may not also use the Popen constructor's "stdin" argument, as
        it will be used internally.
    
        By default, all communication is in bytes, and therefore any "input" should
        be bytes, and the stdout and stderr will be bytes. If in text mode, any
        "input" should be a string, and stdout and stderr will be strings decoded
        according to locale encoding, or by "encoding" if set. Text mode is
        triggered by setting any of text, encoding, errors or universal_newlines.
    
        The other arguments are the same as for the Popen constructor.
        """
        if input is not None:
            if kwargs.get('stdin') is not None:
                raise ValueError('stdin and input arguments may not both be used.')
            kwargs['stdin'] = PIPE
    
        if capture_output:
            if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
                raise ValueError('stdout and stderr arguments may not be used '
                                 'with capture_output.')
            kwargs['stdout'] = PIPE
            kwargs['stderr'] = PIPE
    
        with Popen(*popenargs, **kwargs) as process:
            try:
                stdout, stderr = process.communicate(input, timeout=timeout)
            except TimeoutExpired as exc:
                process.kill()
                if _mswindows:
                    # Windows accumulates the output in a single blocking
                    # read() call run on child threads, with the timeout
                    # being done in a join() on those threads.  communicate()
                    # _after_ kill() is required to collect that and add it
                    # to the exception.
                    exc.stdout, exc.stderr = process.communicate()
                else:
                    # POSIX _communicate already populated the output so
                    # far into the TimeoutExpired exception.
                    process.wait()
                raise
            except:  # Including KeyboardInterrupt, communicate handled that.
                process.kill()
                # We don't call process.wait() as .__exit__ does that for us.
                raise
            retcode = process.poll()
            if check and retcode:
>               raise CalledProcessError(retcode, process.args,
                                         output=stdout, stderr=stderr)
E               subprocess.CalledProcessError: Command '['/usr/bin/python3', '/tmp/pytest-of-jenkins/pytest-7/test_multigpu_dask_example0/notebook.py']' returned non-zero exit status 1.

/usr/lib/python3.8/subprocess.py:516: CalledProcessError
----------------------------- Captured stderr call -----------------------------
distributed.preloading - INFO - Import preload module: dask_cuda.initialize
distributed.preloading - INFO - Import preload module: dask_cuda.initialize
Traceback (most recent call last):
  File "/tmp/pytest-of-jenkins/pytest-7/test_multigpu_dask_example0/notebook.py", line 114, in <module>
    dataset = nvt.Dataset(demo_dataset_path, engine="parquet", part_size=1_000_000)
  File "/var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py", line 304, in __init__
    self.engine = ParquetDatasetEngine(
  File "/var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/parquet.py", line 280, in __init__
    self._real_meta, rg_byte_size_0 = run_on_worker(
  File "/var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/utils.py", line 212, in run_on_worker
    if global_dask_client():
  File "/var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/utils.py", line 191, in global_dask_client
    if nvt_client.cluster.workers:
AttributeError: 'NoneType' object has no attribute 'workers'
=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-0]
tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-1]
tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-2]
tests/unit/test_io.py::test_parquet_lists[2-None-0]
tests/unit/test_io.py::test_parquet_lists[2-None-1]
tests/unit/test_io.py::test_parquet_lists[2-None-2]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341    134    166     34    57%   37-39, 42-46, 51-53, 59-69, 76-77, 107, 110, 112, 116-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 207-210, 223-226, 231-234, 239-250, 265-266, 274, 278-280, 286, 303, 311, 318, 346-362, 371-377, 382, 397, 402, 408-411, 416, 429-430, 432, 438, 443-452, 462-464, 466, 468, 472-483, 523, 540, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134    125     90      0     4%   28-32, 69-286
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     86     89     10    40%   31-32, 39, 51-60, 68-69, 73-75, 79-93, 119-124, 177, 179, 193, 205, 217-218, 227, 231-239, 249-265, 307-311, 314-344, 347-360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     39     22      0    14%   48-52, 55-71, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      3     18      3    88%   39, 50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      9     34      7    85%   51->53, 64, 71->76, 75, 109, 118-120, 129-131
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      8     22      3    86%   62-67, 94, 156, 161, 165
nvtabular/graph/graph.py                                          55      1     36      2    97%   47, 109->108
nvtabular/graph/node.py                                          278     85    154     21    67%   49, 66, 76-84, 89->92, 107, 116-124, 127-129, 147, 162, 165, 174->177, 210, 231-247, 250-269, 284-288, 312, 330, 339, 349-354, 359, 381, 390-398, 406-409, 422-423, 431, 432->415, 438-441, 445, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      4      2      0    73%   24, 45, 48, 52
nvtabular/graph/ops/subtraction.py                                10      3      2      0    75%   25, 28-29
nvtabular/graph/schema.py                                        120     25     59      9    74%   38, 51, 65, 107, 119, 121, 124-126, 129->132, 142, 166-168, 172, 174, 195, 198-210
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122     11     58     13    87%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 121-122, 124-127, 129, 169->185, 177, 181
nvtabular/graph/selector.py                                       78     14     40      9    77%   50, 62-67, 90, 97, 103, 105, 114, 117, 121, 133
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55     43     10      0    22%   32-35, 38-64, 68-96
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21     15      8      0    28%   22-34, 37-39, 42-43
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29     11     12      0    59%   8, 11-15, 18, 21-22, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       41     28     14      0    27%   28-29, 33, 37-40, 43-75
nvtabular/inference/graph/ops/workflow.py                         36     24     10      0    30%   34-38, 41-50, 54-78, 89
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87     73     58      0    10%   32-33, 52-84, 88-94, 98-105, 109-115, 119-136, 140-150
nvtabular/inference/triton/ensemble.py                           290    155    106     13    47%   79-83, 139-172, 217-261, 278-282, 334, 360-368, 391, 394-410, 414-418, 432-433, 463-473, 522-562, 568-584, 588-655, 662->665, 665->661, 682-683, 715-716, 747, 753-772, 778-802, 809
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      9     72     12    92%   110, 113, 149, 225, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     45    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1010, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      2      6      1    92%   48, 74
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          590     52    218     34    87%   34-35, 58, 80->156, 87, 101, 113-127, 140-153, 176, 205-206, 223->248, 234->248, 242->248, 279->295, 285-293, 313, 319, 337->339, 343->345, 351-353, 371->381, 374, 427, 435, 549-554, 592-597, 713->720, 781->786, 787-788, 908, 912, 916, 922, 954, 971, 975, 982->984, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1177, 1181
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     51    154     26    84%   27-28, 93, 98-99, 126, 138-143, 146->exit, 158-160, 179, 180->182, 236, 272-276, 279-282, 287, 294, 300->302, 312-316, 326-327, 363-364, 400-401, 403->407, 404->403, 432, 450, 479, 483-484, 509-518, 579->582, 589-590, 619, 624-628, 633
nvtabular/loader/tensorflow.py                                   168     48     58     13    70%   50, 55-57, 66, 83, 92-97, 105, 293-295, 311, 339, 341, 350, 357, 365-367, 371, 390-400, 404, 408-416, 419-422, 425-429, 435
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     39     26      3    50%   28-30, 33-39, 114, 119, 124-130, 154-166, 169, 174-179, 182-187, 190-191
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      7      4      0    57%   32, 35, 38, 43-46
nvtabular/ops/bucketize.py                                        37     19     20      2    39%   53-55, 59->exit, 60-65, 72-88, 91, 94
nvtabular/ops/categorify.py                                      655    166    352     80    70%   251, 253, 271, 275, 279, 283, 287, 291, 293, 297, 305, 320, 323-328, 341-342, 371-375, 378, 381-406, 432, 442, 463, 466, 486-487, 493-496, 511-516, 580, 607->609, 610, 611->613, 617, 619, 628, 707, 709->712, 715, 732, 741-746, 777, 811, 842->845, 846-848, 855-856, 871-875, 876->840, 894, 902, 909-910, 927-928, 933, 936->939, 965, 985-1003, 1019, 1038->1040, 1043, 1045-1048, 1053, 1056, 1058->1061, 1066->1035, 1074-1081, 1082->1084, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1266, 1274->1296, 1280->1296, 1297-1302, 1316, 1319-1327, 1330, 1341-1349, 1354, 1359->1364, 1363, 1372-1377, 1378->1370, 1385, 1388, 1393-1407, 1428-1436
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     86     40      0    23%   19-20, 29-30, 73-79, 82-89, 93-115, 120-124, 127-129, 132, 135, 138, 164-193, 202-203, 212-214, 222-238, 247-272, 276-279, 283-284
nvtabular/ops/data_stats.py                                       56     40     24      0    22%   28-32, 35, 39-77, 80-99, 102
nvtabular/ops/difference_lag.py                                   33     14     12      1    49%   60->63, 70-79, 84, 87, 92, 95, 98
nvtabular/ops/dropna.py                                            8      3      2      0    70%   39-41
nvtabular/ops/fill.py                                             91     49     40      4    40%   53-55, 63-67, 73, 75-80, 86-87, 91-94, 114-116, 120-127, 132-133, 137-140, 147, 150-159, 162-165
nvtabular/ops/filter.py                                           20      3      8      3    79%   49, 56, 60
nvtabular/ops/groupby.py                                         128     84     82      6    28%   72, 82-83, 92, 93->95, 95->84, 105-123, 129-134, 137, 140-179, 184-189, 195-209, 216-219, 224-227, 233, 240, 246-253, 259-266
nvtabular/ops/hash_bucket.py                                      40     21     22      2    37%   69, 73, 82-93, 98-102, 105-112, 115, 118
nvtabular/ops/hashed_cross.py                                     36     19     17      1    38%   53, 59-70, 75, 78, 81, 86-91
nvtabular/ops/join_external.py                                    92     29     38     11    60%   20-21, 114, 116, 118, 131, 135-161, 165, 169-172, 177-178, 183-184, 220-227
nvtabular/ops/join_groupby.py                                    101     17     38      7    78%   106, 108, 115, 121-124, 131-134, 139-141, 205, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39      7     20      7    76%   59, 63, 72, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       85     58     42      3    25%   21-22, 67-68, 70->73, 74, 80-129, 132, 141-155, 163-185
nvtabular/ops/logop.py                                            19      2      6      1    88%   48-49
nvtabular/ops/moments.py                                          69      1     24      1    98%   71
nvtabular/ops/normalize.py                                        89     30     22      3    63%   72, 77, 82, 89, 97-98, 104, 124-126, 132-140, 146, 153-157, 160-161, 165, 173, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41     28     24      1    25%   47, 54-56, 61-77, 80-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154    110     68      0    21%   166-207, 210-213, 216, 219-230, 233-234, 237-238, 241-245, 249-328, 332-360, 363, 373-382
nvtabular/ops/value_counts.py                                     30     17      6      0    42%   37-53, 56, 59, 62
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251    105     86     12    57%   25-26, 52, 57, 60-70, 73, 92-101, 124-127, 137-139, 141-144, 161-162, 171-179, 182-189, 202, 203->211, 249-250, 256-282, 286-304, 307-316, 323, 347->346, 349, 375-381, 456, 462-464
nvtabular/tools/dataset_inspector.py                              52     40     24      0    21%   31-40, 50-51, 71-112
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      1      4      1    82%   26
nvtabular/workflow/workflow.py                                   201     22     84     13    87%   28-29, 51, 84, 150->153, 169, 175->189, 201-203, 219, 317, 332-333, 351-352, 369, 445, 457-459, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8265   2926   3499    454    61%
Coverage XML written to file coverage.xml

FAIL Required test coverage of 70% not reached. Total coverage: 60.68%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
====== 1 failed, 315 passed, 9 skipped, 182 warnings in 440.74s (0:07:20) ======
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins4060769123511355786.sh
</pre></details>
Check out this pull request on&nbsp; <a href="https://app.reviewnb.com/NVIDIA-Merlin/NVTabular/pull/1318"><img align="absmiddle"  alt="ReviewNB" height="28" class="BotMessageButtonImage" src="https://raw.githubusercontent.com/ReviewNB/support/master/images/button_reviewnb.png"/></a> 

 See visual diffs & provide feedback on Jupyter Notebooks. 

---

 <i>Powered by <a href='https://www.reviewnb.com/?utm_source=gh'>ReviewNB</a></i>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 109a79bea3fd85c8283aa97d550fe5f32a0277e8, no merge conflicts.
Running as SYSTEM
Setting status of 109a79bea3fd85c8283aa97d550fe5f32a0277e8 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3924/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 109a79bea3fd85c8283aa97d550fe5f32a0277e8^{commit} # timeout=10
Checking out Revision 109a79bea3fd85c8283aa97d550fe5f32a0277e8 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 109a79bea3fd85c8283aa97d550fe5f32a0277e8 # timeout=10
Commit message: "remove client= from notebooks and benchmarks"
 > git rev-list --no-walk 922012c52030b9cd38b4d09d914b7e257b032fe4 # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins1439355352962838346.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
WARNING: Skipping nvtabular as it is not installed.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+11.g109a79b -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+11.g109a79b -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+11.g109a79b -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+11.g109a79b -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+11.g109a79b is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+11.g109a79b
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+11.g109a79b
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.categorify
nvtabular/ops/categorify.py:516:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.fill
nvtabular/ops/fill.py:67:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 19%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 20%]
tests/unit/test_tf4rec.py .                                              [ 20%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 23%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 25%]
...................................................                      [ 28%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py ....................            [ 35%]
tests/unit/graph/ops/test_selection.py ...                               [ 35%]
tests/unit/inference/test_ensemble.py .                                  [ 35%]
tests/unit/inference/test_export.py .                                    [ 35%]
tests/unit/inference/test_graph.py .                                     [ 35%]
tests/unit/inference/test_inference_ops.py ..                            [ 35%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 36%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 36%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 38%]
........................................s..                              [ 41%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 43%]
........................................................                 [ 46%]
tests/unit/ops/test_categorify.py ...................................... [ 48%]
.................................................................        [ 53%]
tests/unit/ops/test_column_similarity.py ........................        [ 54%]
tests/unit/ops/test_fill.py ............................................ [ 57%]
........                                                                 [ 57%]
tests/unit/ops/test_hash_bucket.py .........................             [ 59%]
tests/unit/ops/test_join.py ............................................ [ 62%]
........................................................................ [ 66%]
..................................                                       [ 68%]
tests/unit/ops/test_lambda.py ....                                       [ 69%]
tests/unit/ops/test_normalize.py ....................................... [ 71%]
..                                                                       [ 71%]
tests/unit/ops/test_ops.py ............................................. [ 74%]
..........................                                               [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 78%]
........................................................................ [ 82%]
........................................................................ [ 87%]
.......................................                                  [ 89%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
...........................................................              [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py .........................   [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
tests/unit/test_tf4rec.py: 1 warning
tests/unit/test_tools.py: 2 warnings
tests/unit/test_triton_inference.py: 7 warnings
tests/unit/inference/test_export.py: 1 warning
tests/unit/loader/test_tf_dataloader.py: 54 warnings
tests/unit/loader/test_torch_dataloader.py: 54 warnings
tests/unit/ops/test_categorify.py: 1 warning
tests/unit/ops/test_column_similarity.py: 7 warnings
tests/unit/ops/test_fill.py: 24 warnings
tests/unit/ops/test_join.py: 1 warning
tests/unit/ops/test_normalize.py: 28 warnings
tests/unit/ops/test_ops.py: 4 warnings
tests/unit/ops/test_target_encode.py: 21 warnings
tests/unit/workflow/test_workflow.py: 18 warnings
tests/unit/workflow/test_workflow_node.py: 1 warning
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_tools.py::test_cat_rep[None-1000]
tests/unit/test_tools.py::test_cat_rep[distro1-1000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (3) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[None-10000]
tests/unit/test_tools.py::test_cat_rep[distro1-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (30) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/inference/test_ensemble.py::test_workflow_tf_e2e_config_verification[parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/graph/ops/workflow.py:66: UserWarning: TF model expects int32 for column x_nvt, but workflow  is producing type float64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-cat, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-string, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column x is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column y is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column id is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/loader/test_tf_dataloader.py::test_nested_list
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (2) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (25) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (35) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg/dask/dataframe/core.py:6778: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     79    166     29    75%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 274, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      2     22      1    94%   161, 165
nvtabular/graph/graph.py                                          55      1     36      1    98%   47
nvtabular/graph/node.py                                          278     46    154     15    80%   49, 76-84, 107, 165, 254, 264-265, 312, 330, 339, 349-354, 359, 381, 390-398, 406-409, 422-423, 431, 432->415, 438-441, 445, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      1      2      0    93%   52
nvtabular/graph/ops/subtraction.py                                10      2      2      0    83%   28-29
nvtabular/graph/schema.py                                        120      6     59      5    94%   38, 65, 167, 174, 199, 202
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122      8     58     11    89%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 124-127, 169->185, 177, 181
nvtabular/graph/selector.py                                       78      0     40      0   100%
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55      0     10      0   100%
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29      6     12      1    78%   12-13, 18, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       41     11     14      1    75%   47-60
nvtabular/inference/graph/ops/workflow.py                         36      0     10      1    98%   65->62
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           290    139    106      7    55%   139-172, 217-261, 360-368, 394-410, 463-473, 522-562, 568-584, 588-655, 662->665, 665->661, 682->681, 747, 753-772, 778-802, 809
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          590     48    218     30    88%   34-35, 58, 80->156, 87, 101, 113-127, 140-153, 176, 205-206, 223->248, 234->248, 285-293, 313, 319, 337->339, 353, 371->381, 374, 423->435, 427, 549-554, 592-597, 713->720, 781->786, 787-788, 908, 912, 916, 922, 954, 971, 975, 982->984, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1177
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      0      4      0   100%
nvtabular/ops/bucketize.py                                        37     10     20      3    70%   53-55, 59->exit, 62-65, 84-87, 94
nvtabular/ops/categorify.py                                      655     69    352     47    87%   251, 253, 271, 275, 283, 291, 293, 320, 341-342, 378, 389->393, 397-404, 486-487, 511-516, 619, 715, 732, 777, 855-856, 871-875, 876->840, 894, 902, 909->exit, 933, 936->939, 988->986, 1048, 1053, 1074->1078, 1080->1035, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1274->1296, 1280->1296, 1297-1302, 1342, 1359->1364, 1363, 1373->1370, 1378->1370, 1385, 1388, 1396-1406
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     27     40      5    74%   19-20, 29-30, 82->exit, 112, 138, 202-203, 212-214, 222-238, 255->258, 259, 269
nvtabular/ops/data_stats.py                                       56      2     24      3    94%   91->93, 95, 97->87, 102
nvtabular/ops/difference_lag.py                                   33      1     12      1    96%   73->75, 98
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             91     12     40      3    82%   63-67, 93, 121, 147, 151, 162-165
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         128      6     82      5    94%   72, 83, 93->95, 105->110, 137, 141-146
nvtabular/ops/hash_bucket.py                                      40      2     22      2    94%   73, 106->112, 118
nvtabular/ops/hashed_cross.py                                     36      4     17      3    87%   53, 66, 81, 91
nvtabular/ops/join_external.py                                    92     18     38      7    76%   20-21, 114, 116, 118, 135-161, 177->179, 216->227, 221
nvtabular/ops/join_groupby.py                                    101      7     38      4    92%   108, 115, 124, 131->130, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39      6     20      6    80%   59, 63, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       85     29     42      0    63%   21-22, 141-155, 163-185
nvtabular/ops/logop.py                                            19      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        89     10     22      1    88%   89, 97-98, 104, 137-138, 160-161, 165, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41      3     24      3    91%   47, 88-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154     11     68      4    91%   168->172, 176->185, 233-234, 237-238, 250-256, 347->350, 363
nvtabular/ops/value_counts.py                                     30      0      6      1    97%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   201     18     84     11    89%   28-29, 51, 84, 169, 175->189, 201-203, 317, 332-333, 351-352, 369, 445, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8393   1639   3507    368    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 78.22%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1583 passed, 10 skipped, 530 warnings in 1450.50s (0:24:10) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins7248108967861421395.sh
</pre></details>
@bschifferer @rnyak - It would be good to get your thoughts (since you are both developers and "power users").

After this change, the user will still be responsible for deploying a dask cluster if/when they want to perform distributed (multi-GPU) ETL.  However, the user will no longer be responsible for specifying `client=` to any NVTabular API (i.e. `Workflow` or `Dataset`). By default, NVTabular will find/use the dask client defined in the global python context. To disable this "automatic-client-detection" behavior, the user can call `nvt.utils.set_dask_client(None)`.

cc @benfred and @albert17 as well :)
I think it will be easier for the user. Does it still work, when the dask_cluster is on another node?

Example:
- we have one node, which runs the jupyter server
- we have 1-n nodes, which runs the dask-workers

Is NVTabular able to auto-connect in this setup?
>Is NVTabular able to auto-connect in this setup?

This PR does not change anything about what kinds of clusters NVT can connect to, or how those cluster should be deployed. If the user wants a multi-node dask cluster with a scheduler on a different node than the jupyter server, they still need to do this with a Dask-based api, and the user will still need to generate a `client` object on the jupyter server (to connect to the cluster).  The only difference is that the user will no longer need to specify the client when they define a `Workflow` or `Dataset` object.
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit f28db57eaedf404474432a00f9fad9573d557294, no merge conflicts.
Running as SYSTEM
Setting status of f28db57eaedf404474432a00f9fad9573d557294 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3928/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse f28db57eaedf404474432a00f9fad9573d557294^{commit} # timeout=10
Checking out Revision f28db57eaedf404474432a00f9fad9573d557294 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f f28db57eaedf404474432a00f9fad9573d557294 # timeout=10
Commit message: "fix multi-gpu toy example"
 > git rev-list --no-walk 13eccb0fb1b9eaada1fb455a7fdb477e93ed8596 # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins415594957793592695.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
WARNING: Skipping nvtabular as it is not installed.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+12.gf28db57 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+12.gf28db57 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+12.gf28db57 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+12.gf28db57 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+12.gf28db57 is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+12.gf28db57
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+12.gf28db57
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.categorify
nvtabular/ops/categorify.py:516:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.fill
nvtabular/ops/fill.py:67:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 19%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 20%]
tests/unit/test_tf4rec.py .                                              [ 20%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 23%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 25%]
...................................................                      [ 28%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py ....................            [ 35%]
tests/unit/graph/ops/test_selection.py ...                               [ 35%]
tests/unit/inference/test_ensemble.py .                                  [ 35%]
tests/unit/inference/test_export.py .                                    [ 35%]
tests/unit/inference/test_graph.py .                                     [ 35%]
tests/unit/inference/test_inference_ops.py ..                            [ 35%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 36%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 36%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 38%]
........................................s..                              [ 41%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 43%]
........................................................                 [ 46%]
tests/unit/ops/test_categorify.py ...................................... [ 48%]
.................................................................        [ 53%]
tests/unit/ops/test_column_similarity.py ........................        [ 54%]
tests/unit/ops/test_fill.py ............................................ [ 57%]
........                                                                 [ 57%]
tests/unit/ops/test_hash_bucket.py .........................             [ 59%]
tests/unit/ops/test_join.py ............................................ [ 62%]
........................................................................ [ 66%]
..................................                                       [ 68%]
tests/unit/ops/test_lambda.py ....                                       [ 69%]
tests/unit/ops/test_normalize.py ....................................... [ 71%]
..                                                                       [ 71%]
tests/unit/ops/test_ops.py ............................................. [ 74%]
..........................                                               [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 78%]
........................................................................ [ 82%]
........................................................................ [ 87%]
.......................................                                  [ 89%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
...........................................................              [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py .........................   [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
tests/unit/test_tf4rec.py: 1 warning
tests/unit/test_tools.py: 2 warnings
tests/unit/test_triton_inference.py: 7 warnings
tests/unit/inference/test_export.py: 1 warning
tests/unit/loader/test_tf_dataloader.py: 54 warnings
tests/unit/loader/test_torch_dataloader.py: 54 warnings
tests/unit/ops/test_categorify.py: 1 warning
tests/unit/ops/test_column_similarity.py: 7 warnings
tests/unit/ops/test_fill.py: 24 warnings
tests/unit/ops/test_join.py: 1 warning
tests/unit/ops/test_normalize.py: 28 warnings
tests/unit/ops/test_ops.py: 4 warnings
tests/unit/ops/test_target_encode.py: 21 warnings
tests/unit/workflow/test_workflow.py: 18 warnings
tests/unit/workflow/test_workflow_node.py: 1 warning
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_tools.py::test_cat_rep[None-1000]
tests/unit/test_tools.py::test_cat_rep[distro1-1000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (3) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[None-10000]
tests/unit/test_tools.py::test_cat_rep[distro1-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (30) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/inference/test_ensemble.py::test_workflow_tf_e2e_config_verification[parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/graph/ops/workflow.py:66: UserWarning: TF model expects int32 for column x_nvt, but workflow  is producing type float64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-cat, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-string, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column x is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column y is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column id is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/loader/test_tf_dataloader.py::test_nested_list
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (2) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (25) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (35) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg/dask/dataframe/core.py:6778: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     79    166     29    75%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 274, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      2     22      1    94%   161, 165
nvtabular/graph/graph.py                                          55      1     36      1    98%   47
nvtabular/graph/node.py                                          278     46    154     15    80%   49, 76-84, 107, 165, 254, 264-265, 312, 330, 339, 349-354, 359, 381, 390-398, 406-409, 422-423, 431, 432->415, 438-441, 445, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      1      2      0    93%   52
nvtabular/graph/ops/subtraction.py                                10      2      2      0    83%   28-29
nvtabular/graph/schema.py                                        120      6     59      5    94%   38, 65, 167, 174, 199, 202
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122      8     58     11    89%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 124-127, 169->185, 177, 181
nvtabular/graph/selector.py                                       78      0     40      0   100%
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55      0     10      0   100%
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29      6     12      1    78%   12-13, 18, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       41     11     14      1    75%   47-60
nvtabular/inference/graph/ops/workflow.py                         36      0     10      1    98%   65->62
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           290    139    106      7    55%   139-172, 217-261, 360-368, 394-410, 463-473, 522-562, 568-584, 588-655, 662->665, 665->661, 682->681, 747, 753-772, 778-802, 809
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          590     48    218     30    88%   34-35, 58, 80->156, 87, 101, 113-127, 140-153, 176, 205-206, 223->248, 234->248, 285-293, 313, 319, 337->339, 353, 371->381, 374, 423->435, 427, 549-554, 592-597, 713->720, 781->786, 787-788, 908, 912, 916, 922, 954, 971, 975, 982->984, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1177
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      0      4      0   100%
nvtabular/ops/bucketize.py                                        37     10     20      3    70%   53-55, 59->exit, 62-65, 84-87, 94
nvtabular/ops/categorify.py                                      655     69    352     47    87%   251, 253, 271, 275, 283, 291, 293, 320, 341-342, 378, 389->393, 397-404, 486-487, 511-516, 619, 715, 732, 777, 855-856, 871-875, 876->840, 894, 902, 909->exit, 933, 936->939, 988->986, 1048, 1053, 1074->1078, 1080->1035, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1274->1296, 1280->1296, 1297-1302, 1342, 1359->1364, 1363, 1373->1370, 1378->1370, 1385, 1388, 1396-1406
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     27     40      5    74%   19-20, 29-30, 82->exit, 112, 138, 202-203, 212-214, 222-238, 255->258, 259, 269
nvtabular/ops/data_stats.py                                       56      2     24      3    94%   91->93, 95, 97->87, 102
nvtabular/ops/difference_lag.py                                   33      1     12      1    96%   73->75, 98
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             91     12     40      3    82%   63-67, 93, 121, 147, 151, 162-165
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         128      6     82      5    94%   72, 83, 93->95, 105->110, 137, 141-146
nvtabular/ops/hash_bucket.py                                      40      2     22      2    94%   73, 106->112, 118
nvtabular/ops/hashed_cross.py                                     36      4     17      3    87%   53, 66, 81, 91
nvtabular/ops/join_external.py                                    92     18     38      7    76%   20-21, 114, 116, 118, 135-161, 177->179, 216->227, 221
nvtabular/ops/join_groupby.py                                    101      7     38      4    92%   108, 115, 124, 131->130, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39      6     20      6    80%   59, 63, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       85     29     42      0    63%   21-22, 141-155, 163-185
nvtabular/ops/logop.py                                            19      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        89     10     22      1    88%   89, 97-98, 104, 137-138, 160-161, 165, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41      3     24      3    91%   47, 88-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154     11     68      4    91%   168->172, 176->185, 233-234, 237-238, 250-256, 347->350, 363
nvtabular/ops/value_counts.py                                     30      0      6      1    97%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   201     18     84     11    89%   28-29, 51, 84, 169, 175->189, 201-203, 317, 332-333, 351-352, 369, 445, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8393   1639   3507    368    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 78.22%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1583 passed, 10 skipped, 530 warnings in 1424.50s (0:23:44) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins4032580099123965614.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 513d2db3fde1ad9ef76dd5611f77ef13295b492a, no merge conflicts.
Running as SYSTEM
Setting status of 513d2db3fde1ad9ef76dd5611f77ef13295b492a to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3929/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 513d2db3fde1ad9ef76dd5611f77ef13295b492a^{commit} # timeout=10
Checking out Revision 513d2db3fde1ad9ef76dd5611f77ef13295b492a (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 513d2db3fde1ad9ef76dd5611f77ef13295b492a # timeout=10
Commit message: "Apply suggestions from code review"
 > git rev-list --no-walk f28db57eaedf404474432a00f9fad9573d557294 # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins8075007912368675581.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
WARNING: Skipping nvtabular as it is not installed.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+13.g513d2db -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+13.g513d2db -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+13.g513d2db -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+13.g513d2db -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+13.g513d2db is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+13.g513d2db
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+13.g513d2db
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
./nvtabular/io/dataset.py:233:36: F821 undefined name 'client'
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins2566779287382051402.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad, no merge conflicts.
Running as SYSTEM
Setting status of fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3930/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad^{commit} # timeout=10
Checking out Revision fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad # timeout=10
Commit message: "fix mistake in suggestion"
 > git rev-list --no-walk 513d2db3fde1ad9ef76dd5611f77ef13295b492a # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins5483433515523678239.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
WARNING: Skipping nvtabular as it is not installed.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+14.gfe89f3f is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+14.gfe89f3f
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+14.gfe89f3f
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.categorify
nvtabular/ops/categorify.py:516:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.fill
nvtabular/ops/fill.py:67:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 19%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 20%]
tests/unit/test_tf4rec.py .                                              [ 20%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 23%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 25%]
...................................................                      [ 28%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py ....................            [ 35%]
tests/unit/graph/ops/test_selection.py ...                               [ 35%]
tests/unit/inference/test_ensemble.py .                                  [ 35%]
tests/unit/inference/test_export.py F

=================================== FAILURES ===================================
_____________ test_export_run_ensemble_triton[tensorflow-parquet] ______________

tmpdir = local('/tmp/pytest-of-jenkins/pytest-4/test_export_run_ensemble_trito0')
engine = 'parquet', output_model = 'tensorflow'
df =      name-cat name-string    id  label         x         y
0      Yvonne       Wendy  1001    967 -0.095450  0.458576
...ob   938   1032  0.685668 -0.414972
4320   George      Ingrid  1027   1013 -0.250603  0.182831

[4321 rows x 6 columns]

    @pytest.mark.skipif(not TRITON_SERVER_PATH, reason="triton server not found")
    @pytest.mark.parametrize("engine", ["parquet"])
    @pytest.mark.parametrize("output_model", ["tensorflow"])
    def test_export_run_ensemble_triton(tmpdir, engine, output_model, df):
        conts = ["x", "y", "id"] >> ops.FillMissing() >> ops.Normalize()
        cats = ["name-cat", "name-string"] >> ops.Categorify(cat_cache="host")
        workflow = nvt.Workflow(conts + cats)
        nvt_dataset = nvt.Dataset(df)
        workflow.fit(nvt_dataset)
    
        embed_shapes = nvt.ops.get_embedding_sizes(workflow)
        cat_cols = list(embed_shapes.keys())
    
        if output_model == "tensorflow":
            tf_model = create_tf_model(cat_cols, [], embed_shapes)
            export_tensorflow_ensemble(tf_model, workflow, "test_name", tmpdir, [])
        elif output_model == "pytorch":
            torch_model = create_pytorch_model(cat_cols, [], embed_shapes)
            export_pytorch_ensemble(
                torch_model,
                workflow,
                {},
                "test_name",
                tmpdir,
                [],
            )
    
        # assert os.path.exists(os.path.join(repo, "config.pbtxt"))
        tri_df = df.iloc[:10]
        tri_df = tri_df[["x", "y", "id", "name-cat", "name-string"]]
>       response = _run_ensemble_on_tritonserver(str(tmpdir), ["output"], tri_df, "test_name")

tests/unit/inference/test_export.py:59: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/unit/inference/test_ensemble.py:113: in _run_ensemble_on_tritonserver
    with run_triton_server(tmpdir) as client:
/usr/lib/python3.8/contextlib.py:113: in __enter__
    return next(self.gen)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

modelpath = '/tmp/pytest-of-jenkins/pytest-4/test_export_run_ensemble_trito0'

    @contextlib.contextmanager
    def run_triton_server(modelpath):
        cmdline = [
            TRITON_SERVER_PATH,
            "--model-repository",
            modelpath,
            "--backend-config=tensorflow,version=2",
        ]
        env = os.environ.copy()
        env["CUDA_VISIBLE_DEVICES"] = "0"
        with subprocess.Popen(cmdline, env=env) as process:
            try:
                with grpcclient.InferenceServerClient("localhost:8001") as client:
                    # wait until server is ready
                    for _ in range(60):
                        if process.poll() is not None:
                            retcode = process.returncode
>                           raise RuntimeError(f"Tritonserver failed to start (ret={retcode})")
E                           RuntimeError: Tritonserver failed to start (ret=1)

tests/unit/test_triton_inference.py:51: RuntimeError
----------------------------- Captured stderr call -----------------------------
I1214 16:09:45.044008 13454 metrics.cc:298] Collecting metrics for GPU 0: Tesla P100-DGXS-16GB
I1214 16:09:45.321110 13454 libtorch.cc:1092] TRITONBACKEND_Initialize: pytorch
I1214 16:09:45.321139 13454 libtorch.cc:1102] Triton TRITONBACKEND API version: 1.6
I1214 16:09:45.321146 13454 libtorch.cc:1108] 'pytorch' TRITONBACKEND API version: 1.6
I1214 16:09:45.560377 13454 tensorflow.cc:2170] TRITONBACKEND_Initialize: tensorflow
I1214 16:09:45.560408 13454 tensorflow.cc:2180] Triton TRITONBACKEND API version: 1.6
I1214 16:09:45.560418 13454 tensorflow.cc:2186] 'tensorflow' TRITONBACKEND API version: 1.6
I1214 16:09:45.560424 13454 tensorflow.cc:2210] backend configuration:
{"cmdline":{"version":"2"}}
I1214 16:09:45.561724 13454 onnxruntime.cc:1999] TRITONBACKEND_Initialize: onnxruntime
I1214 16:09:45.561741 13454 onnxruntime.cc:2009] Triton TRITONBACKEND API version: 1.6
I1214 16:09:45.561748 13454 onnxruntime.cc:2015] 'onnxruntime' TRITONBACKEND API version: 1.6
I1214 16:09:45.580049 13454 openvino.cc:1193] TRITONBACKEND_Initialize: openvino
I1214 16:09:45.580068 13454 openvino.cc:1203] Triton TRITONBACKEND API version: 1.6
I1214 16:09:45.580074 13454 openvino.cc:1209] 'openvino' TRITONBACKEND API version: 1.6
I1214 16:09:45.739878 13454 pinned_memory_manager.cc:240] Pinned memory pool is created at '0x7f339c000000' with size 268435456
I1214 16:09:45.740586 13454 cuda_memory_manager.cc:105] CUDA memory pool is created on device 0 with size 67108864
I1214 16:09:45.743955 13454 model_repository_manager.cc:1022] loading: test_name_nvt:1
I1214 16:09:45.844221 13454 model_repository_manager.cc:1022] loading: test_name_tf:1
I1214 16:09:45.847191 13454 backend.cc:46] TRITONBACKEND_Initialize: nvtabular
I1214 16:09:45.847232 13454 backend.cc:53] Triton TRITONBACKEND API version: 1.6
I1214 16:09:45.847249 13454 backend.cc:56] 'nvtabular' TRITONBACKEND API version: 1.6
I1214 16:09:45.847461 13454 backend.cc:76] Loaded libpython successfully
W1214 16:09:46.065365 13454 metrics.cc:448] Unable to get energy consumption for GPU 0. Status:Success, value:0
I1214 16:09:46.109176 13454 backend.cc:89] Python interpreter is initialized
I1214 16:09:46.111136 13454 tensorflow.cc:2270] TRITONBACKEND_ModelInitialize: test_name_tf (version 1)
I1214 16:09:46.114403 13454 model_inst_state.hpp:58] Loading TritonPythonModel from module 'nvtabular.inference.triton.workflow_model'
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
W1214 16:09:47.065547 13454 metrics.cc:448] Unable to get energy consumption for GPU 0. Status:Success, value:0
RuntimeError: module compiled against API version 0xe but this version of numpy is 0xd
E1214 16:09:47.174350 13454 backend.cc:153] ImportError: numpy.core.multiarray failed to import

At:
  pyarrow/lib.pyx(36): init pyarrow.lib
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(1174): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /usr/local/lib/python3.8/dist-packages/pyarrow/__init__.py(63): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/dispatch.py(24): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/ops/concat_columns.py(17): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/ops/__init__.py(18): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/node.py(19): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/__init__.py(19): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(1043): _handle_fromlist
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py(18): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(961): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(961): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(961): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load

I1214 16:09:47.174522 13454 backend.cc:160] TRITONBACKEND_ModelInstanceFinalize: delete instance state
I1214 16:09:47.174549 13454 tensorflow.cc:2319] TRITONBACKEND_ModelInstanceInitialize: test_name_tf (GPU device 0)
I1214 16:09:47.174572 13454 backend.cc:136] TRITONBACKEND_ModelFinalize: delete model state
W1214 16:09:48.084798 13454 metrics.cc:448] Unable to get energy consumption for GPU 0. Status:Success, value:0
2021-12-14 16:09:51.980865: I tensorflow/cc/saved_model/reader.cc:38] Reading SavedModel from: /tmp/pytest-of-jenkins/pytest-4/test_export_run_ensemble_trito0/test_name_tf/1/model.savedmodel
2021-12-14 16:09:51.983831: I tensorflow/cc/saved_model/reader.cc:90] Reading meta graph with tags { serve }
2021-12-14 16:09:51.983866: I tensorflow/cc/saved_model/reader.cc:132] Reading SavedModel debug info (if present) from: /tmp/pytest-of-jenkins/pytest-4/test_export_run_ensemble_trito0/test_name_tf/1/model.savedmodel
2021-12-14 16:09:51.992030: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 12315 MB memory:  -> device: 0, name: Tesla P100-DGXS-16GB, pci bus id: 0000:07:00.0, compute capability: 6.0
2021-12-14 16:09:52.102442: I tensorflow/cc/saved_model/loader.cc:213] Restoring SavedModel bundle.
2021-12-14 16:09:52.213790: I tensorflow/cc/saved_model/loader.cc:197] Running initialization op on SavedModel bundle at path: /tmp/pytest-of-jenkins/pytest-4/test_export_run_ensemble_trito0/test_name_tf/1/model.savedmodel
2021-12-14 16:09:52.239194: I tensorflow/cc/saved_model/loader.cc:303] SavedModel load for tags { serve }; Status: success: OK. Took 258346 microseconds.
E1214 16:09:52.239863 13454 model_repository_manager.cc:1186] failed to load 'test_name_nvt' version 1: Internal: ImportError: numpy.core.multiarray failed to import

At:
  pyarrow/lib.pyx(36): init pyarrow.lib
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(1174): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /usr/local/lib/python3.8/dist-packages/pyarrow/__init__.py(63): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/dispatch.py(24): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/ops/concat_columns.py(17): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/ops/__init__.py(18): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/node.py(19): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/__init__.py(19): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(1043): _handle_fromlist
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py(18): <module>
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap_external>(848): exec_module
  <frozen importlib._bootstrap>(686): _load_unlocked
  <frozen importlib._bootstrap>(975): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(961): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(961): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load
  <frozen importlib._bootstrap>(219): _call_with_frames_removed
  <frozen importlib._bootstrap>(961): _find_and_load_unlocked
  <frozen importlib._bootstrap>(991): _find_and_load

I1214 16:09:52.248771 13454 model_repository_manager.cc:1183] successfully loaded 'test_name_tf' version 1
E1214 16:09:52.248835 13454 model_repository_manager.cc:1375] Invalid argument: ensemble 'test_name' depends on 'test_name_nvt' which has no loaded version
I1214 16:09:52.248926 13454 server.cc:522] 
+------------------+------+
| Repository Agent | Path |
+------------------+------+
+------------------+------+

I1214 16:09:52.249027 13454 server.cc:549] 
+-------------+-----------------------------------------------------------------+-----------------------------+
| Backend     | Path                                                            | Config                      |
+-------------+-----------------------------------------------------------------+-----------------------------+
| pytorch     | /opt/tritonserver/backends/pytorch/libtriton_pytorch.so         | {}                          |
| tensorflow  | /opt/tritonserver/backends/tensorflow2/libtriton_tensorflow2.so | {"cmdline":{"version":"2"}} |
| onnxruntime | /opt/tritonserver/backends/onnxruntime/libtriton_onnxruntime.so | {}                          |
| openvino    | /opt/tritonserver/backends/openvino/libtriton_openvino.so       | {}                          |
+-------------+-----------------------------------------------------------------+-----------------------------+

I1214 16:09:52.249170 13454 server.cc:592] 
+---------------+---------+-------------------------------------------------------------------------------------------------------------+
| Model         | Version | Status                                                                                                      |
+---------------+---------+-------------------------------------------------------------------------------------------------------------+
| test_name_nvt | 1       | UNAVAILABLE: Internal: ImportError: numpy.core.multiarray failed to import                                  |
|               |         |                                                                                                             |
|               |         | At:                                                                                                         |
|               |         |   pyarrow/lib.pyx(36): init pyarrow.lib                                                                     |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(1174): exec_module                                                 |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   /usr/local/lib/python3.8/dist-packages/pyarrow/__init__.py(63): <module>                                  |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(848): exec_module                                                  |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/dispatch.py(24): <module>                 |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(848): exec_module                                                  |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/ops/concat_columns.py(17): <module> |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(848): exec_module                                                  |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/ops/__init__.py(18): <module>       |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(848): exec_module                                                  |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/node.py(19): <module>               |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(848): exec_module                                                  |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/graph/__init__.py(19): <module>           |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(848): exec_module                                                  |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap>(1043): _handle_fromlist                                                     |
|               |         |   /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py(18): <module>                 |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap_external>(848): exec_module                                                  |
|               |         |   <frozen importlib._bootstrap>(686): _load_unlocked                                                        |
|               |         |   <frozen importlib._bootstrap>(975): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap>(961): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap>(961): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
|               |         |   <frozen importlib._bootstrap>(219): _call_with_frames_removed                                             |
|               |         |   <frozen importlib._bootstrap>(961): _find_and_load_unlocked                                               |
|               |         |   <frozen importlib._bootstrap>(991): _find_and_load                                                        |
| test_name_tf  | 1       | READY                                                                                                       |
+---------------+---------+-------------------------------------------------------------------------------------------------------------+

I1214 16:09:52.249330 13454 tritonserver.cc:1920] 
+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Option                           | Value                                                                                                                                                                                  |
+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| server_id                        | triton                                                                                                                                                                                 |
| server_version                   | 2.15.0                                                                                                                                                                                 |
| server_extensions                | classification sequence model_repository model_repository(unload_dependents) schedule_policy model_configuration system_shared_memory cuda_shared_memory binary_tensor_data statistics |
| model_repository_path[0]         | /tmp/pytest-of-jenkins/pytest-4/test_export_run_ensemble_trito0                                                                                                                        |
| model_control_mode               | MODE_NONE                                                                                                                                                                              |
| strict_model_config              | 1                                                                                                                                                                                      |
| rate_limit                       | OFF                                                                                                                                                                                    |
| pinned_memory_pool_byte_size     | 268435456                                                                                                                                                                              |
| cuda_memory_pool_byte_size{0}    | 67108864                                                                                                                                                                               |
| response_cache_byte_size         | 0                                                                                                                                                                                      |
| min_supported_compute_capability | 6.0                                                                                                                                                                                    |
| strict_readiness                 | 1                                                                                                                                                                                      |
| exit_timeout                     | 30                                                                                                                                                                                     |
+----------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

I1214 16:09:52.249356 13454 server.cc:252] Waiting for in-flight requests to complete.
I1214 16:09:52.249366 13454 model_repository_manager.cc:1055] unloading: test_name_tf:1
I1214 16:09:52.249427 13454 server.cc:267] Timeout 30: Found 1 live models and 0 in-flight non-inference requests
I1214 16:09:52.271131 13454 tensorflow.cc:2357] TRITONBACKEND_ModelInstanceFinalize: delete instance state
I1214 16:09:52.271259 13454 tensorflow.cc:2296] TRITONBACKEND_ModelFinalize: delete model state
I1214 16:09:52.276805 13454 model_repository_manager.cc:1166] successfully unloaded 'test_name_tf' version 1
I1214 16:09:53.249517 13454 server.cc:267] Timeout 29: Found 0 live models and 0 in-flight non-inference requests
error: creating server: Internal - failed to load all models
------------------------------ Captured log call -------------------------------
WARNING  absl:signature_serialization.py:146 Function `_wrapped_model` contains input name(s) name-cat, name-string with unsupported characters which will be renamed to name_cat, name_string in the SavedModel.
=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
tests/unit/test_tf4rec.py: 1 warning
tests/unit/test_tools.py: 2 warnings
tests/unit/test_triton_inference.py: 7 warnings
tests/unit/inference/test_export.py: 1 warning
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-0]
tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-1]
tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-2]
tests/unit/test_io.py::test_parquet_lists[2-None-0]
tests/unit/test_io.py::test_parquet_lists[2-None-1]
tests/unit/test_io.py::test_parquet_lists[2-None-2]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_tools.py::test_cat_rep[None-1000]
tests/unit/test_tools.py::test_cat_rep[distro1-1000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (3) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[None-10000]
tests/unit/test_tools.py::test_cat_rep[distro1-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (30) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/inference/test_ensemble.py::test_workflow_tf_e2e_config_verification[parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/graph/ops/workflow.py:66: UserWarning: TF model expects int32 for column x_nvt, but workflow  is producing type float64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-cat, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-string, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column x is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column y is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column id is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341    125    166     36    60%   37-39, 42-46, 51-53, 59-69, 76-77, 107, 110, 112, 116-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 207-210, 223-226, 231-234, 245, 248, 265-266, 274, 278-280, 286, 303, 311, 318, 346-362, 371-377, 382, 397, 402, 408-411, 416, 432, 438, 445-448, 462-464, 466, 468, 472-483, 523, 540, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      9     34      7    85%   51->53, 64, 71->76, 75, 109, 118-120, 129-131
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      7     22      3    87%   62-67, 94, 161, 165
nvtabular/graph/graph.py                                          55      1     36      2    97%   47, 109->108
nvtabular/graph/node.py                                          278     76    154     18    69%   49, 66, 76-84, 89->92, 107, 116-124, 147, 162, 165, 231-247, 250-269, 312, 330, 339, 349-354, 359, 381, 390-398, 406-409, 422-423, 431, 432->415, 438-441, 445, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      1      2      0    93%   52
nvtabular/graph/ops/subtraction.py                                10      3      2      0    75%   25, 28-29
nvtabular/graph/schema.py                                        120      6     59      6    93%   38, 65, 167, 174, 199, 202, 207->206
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122     11     58     13    87%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 121-122, 124-127, 129, 169->185, 177, 181
nvtabular/graph/selector.py                                       78      1     40      0    99%   121
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55      0     10      0   100%
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21     15      8      0    28%   22-34, 37-39, 42-43
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29     11     12      0    59%   8, 11-15, 18, 21-22, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       41     12     14      2    71%   47-60, 65
nvtabular/inference/graph/ops/workflow.py                         36      1     10      3    91%   44, 61->73, 65->62
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           290    139    106      7    55%   139-172, 217-261, 360-368, 394-410, 463-473, 522-562, 568-584, 588-655, 662->665, 665->661, 682->681, 747, 753-772, 778-802, 809
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      9     72     12    92%   110, 113, 149, 225, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      2      6      1    92%   48, 74
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          590     50    218     34    88%   34-35, 58, 80->156, 87, 101, 113-127, 140-153, 176, 205-206, 223->248, 234->248, 242->248, 279->295, 285-293, 313, 319, 337->339, 353, 371->381, 374, 427, 435, 549-554, 592-597, 713->720, 781->786, 787-788, 908, 912, 916, 922, 954, 971, 975, 982->984, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1177, 1181
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     51    154     26    84%   27-28, 93, 98-99, 126, 138-143, 146->exit, 158-160, 179, 180->182, 236, 272-276, 279-282, 287, 294, 300->302, 312-316, 326-327, 363-364, 400-401, 403->407, 404->403, 432, 450, 479, 483-484, 509-518, 579->582, 589-590, 619, 624-628, 633
nvtabular/loader/tensorflow.py                                   168     48     58     13    70%   50, 55-57, 66, 83, 92-97, 105, 293-295, 311, 339, 341, 350, 357, 365-367, 371, 390-400, 404, 408-416, 419-422, 425-429, 435
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     39     26      3    50%   28-30, 33-39, 114, 119, 124-130, 154-166, 169, 174-179, 182-187, 190-191
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      7      4      0    57%   32, 35, 38, 43-46
nvtabular/ops/bucketize.py                                        37     19     20      2    39%   53-55, 59->exit, 60-65, 72-88, 91, 94
nvtabular/ops/categorify.py                                      655    147    352     79    73%   251, 253, 271, 275, 279, 283, 287, 291, 293, 297, 320, 323-328, 341-342, 371-375, 378, 389->393, 397-404, 432, 442, 463, 466, 486-487, 493-496, 511-516, 580, 607->609, 610, 611->613, 617, 619, 628, 707, 709->712, 715, 732, 741-746, 777, 811, 855-856, 871-875, 876->840, 894, 902, 909-910, 927-928, 933, 936->939, 965, 985-1003, 1019, 1038->1040, 1043, 1045-1048, 1053, 1056, 1058->1061, 1066->1035, 1074-1081, 1082->1084, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1266, 1274->1296, 1280->1296, 1297-1302, 1316, 1319-1327, 1330, 1341-1349, 1354, 1359->1364, 1363, 1372-1377, 1378->1370, 1385, 1388, 1393-1407, 1428-1436
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     86     40      0    23%   19-20, 29-30, 73-79, 82-89, 93-115, 120-124, 127-129, 132, 135, 138, 164-193, 202-203, 212-214, 222-238, 247-272, 276-279, 283-284
nvtabular/ops/data_stats.py                                       56      2     24      3    94%   91->93, 95, 97->87, 102
nvtabular/ops/difference_lag.py                                   33     14     12      1    49%   60->63, 70-79, 84, 87, 92, 95, 98
nvtabular/ops/dropna.py                                            8      3      2      0    70%   39-41
nvtabular/ops/fill.py                                             91     48     40      3    41%   53-55, 63-67, 75-80, 86-87, 91-94, 114-116, 120-127, 132-133, 137-140, 147, 150-159, 162-165
nvtabular/ops/filter.py                                           20      3      8      3    79%   49, 56, 60
nvtabular/ops/groupby.py                                         128     18     82      9    82%   72, 83, 93->95, 105->110, 122, 137, 141-146, 148-153, 225, 253, 259-266
nvtabular/ops/hash_bucket.py                                      40     21     22      2    37%   69, 73, 82-93, 98-102, 105-112, 115, 118
nvtabular/ops/hashed_cross.py                                     36     19     17      1    38%   53, 59-70, 75, 78, 81, 86-91
nvtabular/ops/join_external.py                                    92     29     38     11    60%   20-21, 114, 116, 118, 131, 135-161, 165, 169-172, 177-178, 183-184, 220-227
nvtabular/ops/join_groupby.py                                    101     17     38      7    78%   106, 108, 115, 121-124, 131-134, 139-141, 205, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39      6     20      6    80%   59, 63, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       85     39     42      5    45%   21-22, 67-68, 74, 86-94, 105, 121->127, 141-155, 163-185
nvtabular/ops/logop.py                                            19      2      6      1    88%   48-49
nvtabular/ops/moments.py                                          69      1     24      1    98%   71
nvtabular/ops/normalize.py                                        89     30     22      3    63%   72, 77, 82, 89, 97-98, 104, 124-126, 132-140, 146, 153-157, 160-161, 165, 173, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41      7     24      4    83%   47, 64-69, 88-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154    110     68      0    21%   166-207, 210-213, 216, 219-230, 233-234, 237-238, 241-245, 249-328, 332-360, 363, 373-382
nvtabular/ops/value_counts.py                                     30     17      6      0    42%   37-53, 56, 59, 62
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      7    94%   25-26, 124-127, 137-139, 161-162, 313, 323, 347->346, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   201     22     84     12    87%   28-29, 51, 84, 169, 175->189, 201-203, 219, 317, 332-333, 351-352, 369, 445, 457-459, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8265   2274   3499    458    69%
Coverage XML written to file coverage.xml

FAIL Required test coverage of 70% not reached. Total coverage: 69.30%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
====== 1 failed, 557 passed, 9 skipped, 203 warnings in 650.93s (0:10:50) ======
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins3575338520397531957.sh
</pre></details>
rerun tests
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad, no merge conflicts.
Running as SYSTEM
Setting status of fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3931/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad^{commit} # timeout=10
Checking out Revision fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad # timeout=10
Commit message: "fix mistake in suggestion"
 > git rev-list --no-walk fe89f3f977c0d6f1ce6a0ad2c0c3303e884f43ad # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins593835200977034768.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Collecting numpy==1.20.3
  Downloading numpy-1.20.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.4 MB)
Installing collected packages: numpy
  Attempting uninstall: numpy
    Found existing installation: numpy 1.20.0
    Uninstalling numpy-1.20.0:
      Successfully uninstalled numpy-1.20.0
  WARNING: The scripts f2py, f2py3 and f2py3.8 are installed in '/var/jenkins_home/.local/bin' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
tensorflow 2.6.2 requires numpy~=1.19.2, but you have numpy 1.20.3 which is incompatible.
tensorflow-gpu 2.7.0 requires keras<2.8,>=2.7.0rc0, but you have keras 2.6.0 which is incompatible.
tensorflow-gpu 2.7.0 requires tensorflow-estimator<2.8,~=2.7.0rc0, but you have tensorflow-estimator 2.6.0 which is incompatible.
pytorch-lightning 1.5.4 requires torchmetrics>=0.4.1, but you have torchmetrics 0.3.2 which is incompatible.
dask-cudf 21.8.0a0+340.g0a00579350 requires pandas<1.3.0dev0,>=1.0, but you have pandas 1.3.3 which is incompatible.
cudf 21.8.0a0+340.g0a00579350 requires pandas<1.3.0dev0,>=1.0, but you have pandas 1.3.3 which is incompatible.
Successfully installed numpy-1.20.3
Found existing installation: nvtabular 0.8.0+7.gb459467
Uninstalling nvtabular-0.8.0+7.gb459467:
  Successfully uninstalled nvtabular-0.8.0+7.gb459467
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+14.gfe89f3f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
Adding nvtabular 0.8.0+14.gfe89f3f to easy-install.pth file

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+14.gfe89f3f
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.2.0
Best match: tensorflow-metadata 1.2.0
Processing tensorflow_metadata-1.2.0-py3.8.egg
tensorflow-metadata 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tensorflow_metadata-1.2.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.61.2
Best match: tqdm 4.61.2
Processing tqdm-4.61.2-py3.8.egg
tqdm 4.61.2 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tqdm-4.61.2-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.3
Best match: pandas 1.3.3
Processing pandas-1.3.3-py3.8-linux-x86_64.egg
pandas 1.3.3 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/pandas-1.3.3-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.53.0
Best match: googleapis-common-protos 1.53.0
Processing googleapis_common_protos-1.53.0-py3.8.egg
googleapis-common-protos 1.53.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/googleapis_common_protos-1.53.0-py3.8.egg
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.1
Best match: toolz 0.11.1
Processing toolz-0.11.1-py3.8.egg
toolz 0.11.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/toolz-0.11.1-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.2
Best match: msgpack 1.0.2
Processing msgpack-1.0.2-py3.8-linux-x86_64.egg
msgpack 1.0.2 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/msgpack-1.0.2-py3.8-linux-x86_64.egg
Searching for cloudpickle==1.6.0
Best match: cloudpickle 1.6.0
Processing cloudpickle-1.6.0-py3.8.egg
cloudpickle 1.6.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/cloudpickle-1.6.0-py3.8.egg
Searching for click==8.0.1
Best match: click 8.0.1
Processing click-8.0.1-py3.8.egg
click 8.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/click-8.0.1-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.2
Best match: packaging 21.2
Adding packaging 21.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==2.4.7
Best match: pyparsing 2.4.7
Adding pyparsing 2.4.7 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+14.gfe89f3f
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.categorify
nvtabular/ops/categorify.py:516:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)
************* Module nvtabular.ops.fill
nvtabular/ops/fill.py:67:15: I1101: Module 'nvtabular_cpp' has no 'inference' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 19%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ...F

=================================== FAILURES ===================================
____________________________ test_movielens_example ____________________________

tmpdir = local('/tmp/pytest-of-jenkins/pytest-5/test_movielens_example0')

    def test_movielens_example(tmpdir):
        _get_random_movielens_data(tmpdir, 10000, dataset="movie")
        _get_random_movielens_data(tmpdir, 10000, dataset="ratings")
        _get_random_movielens_data(tmpdir, 5000, dataset="ratings", valid=True)
    
        triton_model_path = os.path.join(tmpdir, "models")
        os.environ["INPUT_DATA_DIR"] = str(tmpdir)
        os.environ["MODEL_PATH"] = triton_model_path
    
        notebook_path = os.path.join(
            dirname(TEST_PATH),
            "examples/getting-started-movielens/",
            "02-ETL-with-NVTabular.ipynb",
        )
        _run_notebook(tmpdir, notebook_path)
    
        def _modify_tf_nb(line):
            return line.replace(
                # don't require graphviz/pydot
                "tf.keras.utils.plot_model(model)",
                "# tf.keras.utils.plot_model(model)",
            )
    
        def _modify_tf_triton(line):
            # models are already preloaded
            line = line.replace("triton_client.load_model", "# triton_client.load_model")
            line = line.replace("triton_client.unload_model", "# triton_client.unload_model")
            return line
    
        notebooks = []
        try:
            import torch  # noqa
    
            notebooks.append("03-Training-with-PyTorch.ipynb")
        except Exception:
            pass
        try:
            import nvtabular.inference.triton  # noqa
            import nvtabular.loader.tensorflow  # noqa
    
            notebooks.append("03-Training-with-TF.ipynb")
            has_tf = True
    
        except Exception:
            has_tf = False
    
        for notebook in notebooks:
            notebook_path = os.path.join(
                dirname(TEST_PATH),
                "examples/getting-started-movielens/",
                notebook,
            )
            if notebook == "03-Training-with-TF.ipynb":
>               _run_notebook(tmpdir, notebook_path, transform=_modify_tf_nb)

tests/unit/test_notebooks.py:211: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/unit/test_notebooks.py:307: in _run_notebook
    subprocess.check_output([sys.executable, script_path])
/usr/lib/python3.8/subprocess.py:415: in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

input = None, capture_output = False, timeout = None, check = True
popenargs = (['/usr/bin/python3', '/tmp/pytest-of-jenkins/pytest-5/test_movielens_example0/notebook.py'],)
kwargs = {'stdout': -1}, process = <subprocess.Popen object at 0x7f5f71606c40>
stdout = b"\r1/1 [==============================] - ETA: 0s - loss: 0.6885\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\x08\...8\x08\x08\x08\x08\x08\x08\r1/1 [==============================] - 1s 1s/step - loss: 0.6885\n{'val_loss': 0.6308149}\n"
stderr = None, retcode = 1

    def run(*popenargs,
            input=None, capture_output=False, timeout=None, check=False, **kwargs):
        """Run command with arguments and return a CompletedProcess instance.
    
        The returned instance will have attributes args, returncode, stdout and
        stderr. By default, stdout and stderr are not captured, and those attributes
        will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them.
    
        If check is True and the exit code was non-zero, it raises a
        CalledProcessError. The CalledProcessError object will have the return code
        in the returncode attribute, and output & stderr attributes if those streams
        were captured.
    
        If timeout is given, and the process takes too long, a TimeoutExpired
        exception will be raised.
    
        There is an optional argument "input", allowing you to
        pass bytes or a string to the subprocess's stdin.  If you use this argument
        you may not also use the Popen constructor's "stdin" argument, as
        it will be used internally.
    
        By default, all communication is in bytes, and therefore any "input" should
        be bytes, and the stdout and stderr will be bytes. If in text mode, any
        "input" should be a string, and stdout and stderr will be strings decoded
        according to locale encoding, or by "encoding" if set. Text mode is
        triggered by setting any of text, encoding, errors or universal_newlines.
    
        The other arguments are the same as for the Popen constructor.
        """
        if input is not None:
            if kwargs.get('stdin') is not None:
                raise ValueError('stdin and input arguments may not both be used.')
            kwargs['stdin'] = PIPE
    
        if capture_output:
            if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
                raise ValueError('stdout and stderr arguments may not be used '
                                 'with capture_output.')
            kwargs['stdout'] = PIPE
            kwargs['stderr'] = PIPE
    
        with Popen(*popenargs, **kwargs) as process:
            try:
                stdout, stderr = process.communicate(input, timeout=timeout)
            except TimeoutExpired as exc:
                process.kill()
                if _mswindows:
                    # Windows accumulates the output in a single blocking
                    # read() call run on child threads, with the timeout
                    # being done in a join() on those threads.  communicate()
                    # _after_ kill() is required to collect that and add it
                    # to the exception.
                    exc.stdout, exc.stderr = process.communicate()
                else:
                    # POSIX _communicate already populated the output so
                    # far into the TimeoutExpired exception.
                    process.wait()
                raise
            except:  # Including KeyboardInterrupt, communicate handled that.
                process.kill()
                # We don't call process.wait() as .__exit__ does that for us.
                raise
            retcode = process.poll()
            if check and retcode:
>               raise CalledProcessError(retcode, process.args,
                                         output=stdout, stderr=stderr)
E               subprocess.CalledProcessError: Command '['/usr/bin/python3', '/tmp/pytest-of-jenkins/pytest-5/test_movielens_example0/notebook.py']' returned non-zero exit status 1.

/usr/lib/python3.8/subprocess.py:516: CalledProcessError
----------------------------- Captured stderr call -----------------------------
/usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (25) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
  warn(NumbaPerformanceWarning(msg))
/usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (13) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
  warn(NumbaPerformanceWarning(msg))
2021-12-14 16:57:54.653388: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX2 FMA
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2021-12-14 16:57:55.681766: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:0 with 11394 MB memory:  -> device: 0, name: Tesla P100-DGXS-16GB, pci bus id: 0000:07:00.0, compute capability: 6.0
2021-12-14 16:57:55.683243: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1510] Created device /job:localhost/replica:0/task:0/device:GPU:1 with 15173 MB memory:  -> device: 1, name: Tesla P100-DGXS-16GB, pci bus id: 0000:08:00.0, compute capability: 6.0
2021-12-14 16:57:56.842520: I tensorflow/compiler/mlir/mlir_graph_optimization_pass.cc:185] None of the MLIR Optimization Passes are enabled (registered 2)
2021-12-14 16:57:59.032060: W tensorflow/python/util/util.cc:348] Sets are not currently considered sequences, but this may change in the future, so consider avoiding using them.
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
WARNING:absl:Function `_wrapped_model` contains input name(s) movieId, userId with unsupported characters which will be renamed to movieid, userid in the SavedModel.
Traceback (most recent call last):
  File "/tmp/pytest-of-jenkins/pytest-5/test_movielens_example0/notebook.py", line 126, in <module>
    from nvtabular.inference.triton import export_tensorflow_ensemble
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular/inference/triton/__init__.py", line 27, in <module>
    from nvtabular.inference.triton.ensemble import (  # noqa
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular/inference/triton/ensemble.py", line 29, in <module>
    import nvtabular.inference.triton.model_config_pb2 as model_config  # noqa
ModuleNotFoundError: No module named 'nvtabular.inference.triton.model_config_pb2'
=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py::test_hugectr[True-0-op_columns0-parquet-hugectr]
  /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg/distributed/client.py:1185: VersionMismatchWarning: Mismatched versions found
  
  +---------+--------+-----------+---------+
  | Package | client | scheduler | workers |
  +---------+--------+-----------+---------+
  | numpy   | 1.20.3 | 1.20.3    | 1.20.0  |
  +---------+--------+-----------+---------+
    warnings.warn(version_module.VersionMismatchWarning(msg[0]["warning"]))

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-0]
tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-1]
tests/unit/test_io.py::test_parquet_lists[2-Shuffle.PER_PARTITION-2]
tests/unit/test_io.py::test_parquet_lists[2-None-0]
tests/unit/test_io.py::test_parquet_lists[2-None-1]
tests/unit/test_io.py::test_parquet_lists[2-None-2]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341    174    166     26    44%   37-39, 42-46, 51-53, 59-69, 76-77, 101-112, 116-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 200->202, 207-210, 223-226, 231-234, 239-250, 265-266, 274, 278-280, 285-288, 294, 303, 311, 318, 346-362, 371-377, 382, 393-403, 408-411, 416, 418, 425, 427, 429-430, 432, 437-439, 443-452, 457-483, 518, 523, 539-542, 547, 549, 556, 571-585, 595-601, 605-607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134    125     90      0     4%   28-32, 69-286
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153    130     89      0    11%   27, 31-32, 38-39, 48-75, 79-93, 103-115, 119-124, 173-185, 188-211, 214-228, 231-239, 242, 249-265, 307-311, 314-344, 347-360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     39     22      0    14%   48-52, 55-71, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32     25     18      0    22%   37-46, 49-54, 74-82, 85-95
nvtabular/framework_utils/torch/models.py                         45     40     30      0     9%   52-82, 85-110
nvtabular/framework_utils/torch/utils.py                          75     66     34      0    12%   22, 25-33, 42-44, 47-55, 58-76, 106-140
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      9     22      3    84%   62-67, 94, 153, 156, 161, 165
nvtabular/graph/graph.py                                          55      1     36      2    97%   47, 109->108
nvtabular/graph/node.py                                          278    117    154     19    55%   49, 66, 76-84, 89->92, 107, 116-124, 127-129, 147, 162, 165, 174->177, 210, 231-247, 250-269, 284-288, 312, 330, 339, 347-354, 358-369, 373, 381, 390-398, 406-409, 421-425, 431, 432->415, 438-441, 445, 450-475, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      1      2      0    92%   49
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      4      2      0    73%   24, 45, 48, 52
nvtabular/graph/ops/subtraction.py                                10      3      2      0    75%   25, 28-29
nvtabular/graph/schema.py                                        120     32     59      9    66%   38, 51, 65, 107, 116->118, 119, 121, 124-126, 129-138, 142, 166-168, 172, 174, 195, 198-210
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122     13     58     15    84%   45, 61->68, 64->66, 75, 80, 91, 92->97, 95->97, 118->133, 121-122, 124-127, 129, 169->185, 177, 181
nvtabular/graph/selector.py                                       78     14     40      9    77%   50, 62-67, 90, 97, 103, 105, 114, 117, 121, 133
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55     43     10      0    22%   32-35, 38-64, 68-96
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21     15      8      0    28%   22-34, 37-39, 42-43
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29     11     12      0    59%   8, 11-15, 18, 21-22, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       41     28     14      0    27%   28-29, 33, 37-40, 43-75
nvtabular/inference/graph/ops/workflow.py                         36     24     10      0    30%   34-38, 41-50, 54-78, 89
nvtabular/inference/triton/__init__.py                            36     23     14      0    26%   38-57, 61-64, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87     73     58      0    10%   32-33, 52-84, 88-94, 98-105, 109-115, 119-136, 140-150
nvtabular/inference/triton/ensemble.py                           290    259    106      0     8%   67-99, 139-172, 217-261, 265-296, 319-347, 360-368, 385-439, 454-494, 522-562, 568-584, 588-655, 659-685, 689-700, 704-711, 715-716, 722-747, 753-772, 778-802, 807-810
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      9     72     12    92%   110, 113, 149, 225, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     47    168     29    84%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 894-895, 984-985, 1010, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      2      6      1    92%   48, 74
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          590     52    218     34    87%   34-35, 58, 80->156, 87, 101, 113-127, 140-153, 176, 205-206, 223->248, 234->248, 242->248, 279->295, 285-293, 313, 319, 337->339, 343->345, 351-353, 371->381, 374, 427, 435, 549-554, 592-597, 713->720, 781->786, 787-788, 908, 912, 916, 922, 954, 971, 975, 982->984, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1177, 1181
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372    302    154      0    14%   27-28, 45, 68-74, 77, 81, 85, 88, 92-99, 107-119, 123-148, 152-160, 164-168, 171, 175-182, 186, 212-253, 257-262, 266-269, 272-276, 279-282, 285-288, 292-294, 299-307, 311-320, 324-329, 332-349, 352, 355-358, 361-365, 380-407, 411-491, 499-502, 509-518, 549-555, 564-603, 607-634
nvtabular/loader/tensorflow.py                                   168    127     58      0    20%   49-71, 75-97, 104-106, 240-268, 276-277, 285, 293-295, 307-311, 314, 321, 325, 329, 332-341, 344-346, 349-381, 390-400, 404, 408-416, 419-422, 425-429, 432-437, 445-446, 449-462
nvtabular/loader/tf_utils.py                                      57     27     22      6    46%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74, 89-94, 104-117
nvtabular/loader/torch.py                                         87     56     26      0    33%   28-30, 33-39, 90, 110, 113-115, 118-120, 123-131, 134-136, 139, 142, 146, 150, 154-166, 169, 174-179, 182-187, 190-191, 202, 205
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      7      4      0    57%   32, 35, 38, 43-46
nvtabular/ops/bucketize.py                                        37     19     20      2    39%   53-55, 59->exit, 60-65, 72-88, 91, 94
nvtabular/ops/categorify.py                                      655    205    352     77    64%   251, 253, 271, 275, 279, 283, 287, 291, 293, 297, 305, 320, 323-328, 341-342, 371-375, 378, 381-406, 425-426, 432, 442, 463, 466, 486-487, 493-496, 511-516, 572-602, 607->609, 610, 611->613, 617, 619, 628, 707, 709->712, 715, 732, 741-746, 777, 811, 842->845, 846-848, 855-856, 871-875, 876->840, 894, 902, 909-910, 927-928, 933, 936->939, 965, 985-1003, 1019, 1038->1040, 1041-1056, 1058->1061, 1066->1035, 1074-1081, 1082->1084, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1266, 1269, 1274->1296, 1280->1296, 1297-1302, 1316, 1319-1327, 1330, 1341-1349, 1354, 1359->1364, 1363, 1372-1377, 1378->1370, 1385, 1388, 1393-1407, 1412-1424, 1428-1436
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     86     40      0    23%   19-20, 29-30, 73-79, 82-89, 93-115, 120-124, 127-129, 132, 135, 138, 164-193, 202-203, 212-214, 222-238, 247-272, 276-279, 283-284
nvtabular/ops/data_stats.py                                       56     40     24      0    22%   28-32, 35, 39-77, 80-99, 102
nvtabular/ops/difference_lag.py                                   33     14     12      1    49%   60->63, 70-79, 84, 87, 92, 95, 98
nvtabular/ops/dropna.py                                            8      3      2      0    70%   39-41
nvtabular/ops/fill.py                                             91     49     40      4    40%   53-55, 63-67, 73, 75-80, 86-87, 91-94, 114-116, 120-127, 132-133, 137-140, 147, 150-159, 162-165
nvtabular/ops/filter.py                                           20      3      8      3    79%   49, 56, 60
nvtabular/ops/groupby.py                                         128     84     82      6    28%   72, 82-83, 92, 93->95, 95->84, 105-123, 129-134, 137, 140-179, 184-189, 195-209, 216-219, 224-227, 233, 240, 246-253, 259-266
nvtabular/ops/hash_bucket.py                                      40     21     22      2    37%   69, 73, 82-93, 98-102, 105-112, 115, 118
nvtabular/ops/hashed_cross.py                                     36     19     17      1    38%   53, 59-70, 75, 78, 81, 86-91
nvtabular/ops/join_external.py                                    92     75     38      0    15%   20-21, 101-118, 123-179, 182-186, 189-197, 202-207, 211-212, 216-227
nvtabular/ops/join_groupby.py                                    101     17     38      7    78%   106, 108, 115, 121-124, 131-134, 139-141, 205, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39     28     20      0    22%   57-65, 69-78, 83, 88-103
nvtabular/ops/list_slice.py                                       85     58     42      3    25%   21-22, 67-68, 70->73, 74, 80-129, 132, 141-155, 163-185
nvtabular/ops/logop.py                                            19      2      6      1    88%   48-49
nvtabular/ops/moments.py                                          69      1     24      1    98%   71
nvtabular/ops/normalize.py                                        89     30     22      3    63%   72, 77, 82, 89, 97-98, 104, 124-126, 132-140, 146, 153-157, 160-161, 165, 173, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41     28     24      1    25%   47, 54-56, 61-77, 80-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154    110     68      0    21%   166-207, 210-213, 216, 219-230, 233-234, 237-238, 241-245, 249-328, 332-360, 363, 373-382
nvtabular/ops/value_counts.py                                     30     17      6      0    42%   37-53, 56, 59, 62
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251    105     86     12    57%   25-26, 52, 57, 60-70, 73, 92-101, 124-127, 137-139, 141-144, 161-162, 171-179, 182-189, 202, 203->211, 249-250, 256-282, 286-304, 307-316, 323, 347->346, 349, 375-381, 456, 462-464
nvtabular/tools/dataset_inspector.py                              52     40     24      0    21%   31-40, 50-51, 71-112
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     46     52      9    56%   34-35, 39-40, 49, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      1      4      1    82%   26
nvtabular/workflow/workflow.py                                   201     54     84     11    73%   28-29, 51, 84, 117-118, 122, 150->153, 169, 175->189, 201-203, 219, 259-287, 305-344, 348, 351-352, 369, 445, 457-459, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8265   3791   3499    345    50%
Coverage XML written to file coverage.xml

FAIL Required test coverage of 70% not reached. Total coverage: 49.82%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
====== 1 failed, 313 passed, 9 skipped, 183 warnings in 334.78s (0:05:34) ======
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins3597797500953215101.sh
</pre></details>
CI failure is in `test_export_run_ensemble_triton` (added in #1292).  This seems unrelated to the current PR (probably?). cc @jperez999 (in case you have thoughts)
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit b2c1dca0d9dc4bfaec5c5041ca5237a78833826a, no merge conflicts.
Running as SYSTEM
Setting status of b2c1dca0d9dc4bfaec5c5041ca5237a78833826a to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3935/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse b2c1dca0d9dc4bfaec5c5041ca5237a78833826a^{commit} # timeout=10
Checking out Revision b2c1dca0d9dc4bfaec5c5041ca5237a78833826a (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f b2c1dca0d9dc4bfaec5c5041ca5237a78833826a # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk 2358493c60ed7414b3fdc7bb4980d028851495ac # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins2446358876880265168.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Found existing installation: nvtabular 0.8.0+7.gb459467
ERROR: Exception:
Traceback (most recent call last):
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 164, in exc_logging_wrapper
    status = run_func(*args)
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/pip/_internal/commands/uninstall.py", line 97, in run
    uninstall_pathset = req.uninstall(
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/pip/_internal/req/req_install.py", line 670, in uninstall
    uninstalled_pathset = UninstallPathSet.from_dist(dist)
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/pip/_internal/req/req_uninstall.py", line 533, in from_dist
    assert (
AssertionError: Egg-link /var/jenkins_home/workspace/nvtabular_tests/nvtabular does not match installed location of nvtabular (at /nvtabular)
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins1603902591358673705.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit b2a03e69d75d69a645ced0983ee613b11446a989, no merge conflicts.
Running as SYSTEM
Setting status of b2a03e69d75d69a645ced0983ee613b11446a989 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3965/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse b2a03e69d75d69a645ced0983ee613b11446a989^{commit} # timeout=10
Checking out Revision b2a03e69d75d69a645ced0983ee613b11446a989 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f b2a03e69d75d69a645ced0983ee613b11446a989 # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk 1de2dcc52168d969bcac2a4fd707d17cbd5f7569 # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins5616067227313316576.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Found existing installation: nvtabular 0.8.0+7.gb459467
Can't uninstall 'nvtabular'. No files were found to uninstall.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+18.gb2a03e6 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+18.gb2a03e6 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+18.gb2a03e6 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+18.gb2a03e6 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+18.gb2a03e6 is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+18.gb2a03e6
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.5.0
Best match: tensorflow-metadata 1.5.0
Processing tensorflow_metadata-1.5.0-py3.8.egg
tensorflow-metadata 1.5.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/tensorflow_metadata-1.5.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.62.3
Best match: tqdm 4.62.3
Processing tqdm-4.62.3-py3.8.egg
tqdm 4.62.3 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages/tqdm-4.62.3-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.5
Best match: pandas 1.3.5
Processing pandas-1.3.5-py3.8-linux-x86_64.egg
pandas 1.3.5 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.54.0
Best match: googleapis-common-protos 1.54.0
Adding googleapis-common-protos 1.54.0 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.2
Best match: toolz 0.11.2
Processing toolz-0.11.2-py3.8.egg
toolz 0.11.2 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/toolz-0.11.2-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.3
Best match: msgpack 1.0.3
Processing msgpack-1.0.3-py3.8-linux-x86_64.egg
msgpack 1.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/msgpack-1.0.3-py3.8-linux-x86_64.egg
Searching for cloudpickle==2.0.0
Best match: cloudpickle 2.0.0
Processing cloudpickle-2.0.0-py3.8.egg
cloudpickle 2.0.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/cloudpickle-2.0.0-py3.8.egg
Searching for click==8.0.3
Best match: click 8.0.3
Processing click-8.0.3-py3.8.egg
click 8.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/click-8.0.3-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.3
Best match: packaging 21.3
Adding packaging 21.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==3.0.6
Best match: pyparsing 3.0.6
Adding pyparsing 3.0.6 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+18.gb2a03e6
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 19%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 20%]
tests/unit/test_tf4rec.py .                                              [ 20%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 23%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 25%]
...................................................                      [ 28%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py ....................            [ 35%]
tests/unit/graph/ops/test_selection.py ...                               [ 35%]
tests/unit/inference/test_ensemble.py .                                  [ 35%]
tests/unit/inference/test_export.py .                                    [ 35%]
tests/unit/inference/test_graph.py .                                     [ 35%]
tests/unit/inference/test_inference_ops.py ..                            [ 35%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 36%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 36%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 38%]
........................................s..                              [ 41%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 43%]
........................................................                 [ 46%]
tests/unit/ops/test_categorify.py ...................................... [ 48%]
.................................................................        [ 53%]
tests/unit/ops/test_column_similarity.py ........................        [ 54%]
tests/unit/ops/test_fill.py ............................................ [ 57%]
........                                                                 [ 57%]
tests/unit/ops/test_hash_bucket.py .........................             [ 59%]
tests/unit/ops/test_join.py ............................................ [ 62%]
........................................................................ [ 66%]
..................................                                       [ 68%]
tests/unit/ops/test_lambda.py ....                                       [ 69%]
tests/unit/ops/test_normalize.py ....................................... [ 71%]
..                                                                       [ 71%]
tests/unit/ops/test_ops.py ............................................. [ 74%]
..........................                                               [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 78%]
........................................................................ [ 82%]
........................................................................ [ 87%]
.......................................                                  [ 89%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
...........................................................              [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py .........................   [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
tests/unit/test_tf4rec.py: 1 warning
tests/unit/test_tools.py: 2 warnings
tests/unit/test_triton_inference.py: 7 warnings
tests/unit/inference/test_export.py: 1 warning
tests/unit/loader/test_tf_dataloader.py: 54 warnings
tests/unit/loader/test_torch_dataloader.py: 54 warnings
tests/unit/ops/test_categorify.py: 1 warning
tests/unit/ops/test_column_similarity.py: 7 warnings
tests/unit/ops/test_fill.py: 24 warnings
tests/unit/ops/test_join.py: 1 warning
tests/unit/ops/test_normalize.py: 28 warnings
tests/unit/ops/test_ops.py: 4 warnings
tests/unit/ops/test_target_encode.py: 21 warnings
tests/unit/workflow/test_workflow.py: 18 warnings
tests/unit/workflow/test_workflow_node.py: 1 warning
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_tools.py::test_cat_rep[None-1000]
tests/unit/test_tools.py::test_cat_rep[distro1-1000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (3) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[None-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (30) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[distro1-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (29) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/inference/test_ensemble.py::test_workflow_tf_e2e_config_verification[parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/graph/ops/workflow.py:66: UserWarning: TF model expects int32 for column x_nvt, but workflow  is producing type float64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-cat, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-string, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column x is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column y is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column id is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/loader/test_tf_dataloader.py::test_nested_list
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (2) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (25) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (35) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg/dask/dataframe/core.py:6778: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     79    166     29    75%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 274, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  68      2     22      1    94%   161, 165
nvtabular/graph/graph.py                                          55      1     36      1    98%   47
nvtabular/graph/node.py                                          278     46    154     15    80%   49, 76-84, 107, 165, 254, 264-265, 312, 330, 339, 349-354, 359, 381, 390-398, 406-409, 422-423, 431, 432->415, 438-441, 445, 479-484, 503
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             11      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  19      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             13      1      2      0    93%   52
nvtabular/graph/ops/subtraction.py                                10      2      2      0    83%   28-29
nvtabular/graph/schema.py                                        120      6     59      5    94%   38, 65, 167, 174, 199, 202
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122      8     58     11    89%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 124-127, 169->185, 177, 181
nvtabular/graph/selector.py                                       78      0     40      0   100%
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55      0     10      0   100%
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29      6     12      1    78%   12-13, 18, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       41     11     14      1    75%   47-60
nvtabular/inference/graph/ops/workflow.py                         36      0     10      1    98%   65->62
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           290    139    106      7    55%   139-172, 217-261, 360-368, 394-410, 463-473, 522-562, 568-584, 588-655, 662->665, 665->661, 682->681, 747, 753-772, 778-802, 809
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          590     48    218     30    88%   34-35, 58, 80->156, 87, 101, 113-127, 140-153, 176, 205-206, 223->248, 234->248, 285-293, 313, 319, 337->339, 353, 371->381, 374, 423->435, 427, 549-554, 592-597, 713->720, 781->786, 787-788, 908, 912, 916, 922, 954, 971, 975, 982->984, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1177
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      0      4      0   100%
nvtabular/ops/bucketize.py                                        37     10     20      3    70%   53-55, 59->exit, 62-65, 84-87, 94
nvtabular/ops/categorify.py                                      655     69    352     47    87%   251, 253, 271, 275, 283, 291, 293, 320, 341-342, 378, 389->393, 397-404, 486-487, 511-516, 619, 715, 732, 777, 855-856, 871-875, 876->840, 894, 902, 909->exit, 933, 936->939, 988->986, 1048, 1053, 1074->1078, 1080->1035, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1274->1296, 1280->1296, 1297-1302, 1342, 1359->1364, 1363, 1373->1370, 1378->1370, 1385, 1388, 1396-1406
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     27     40      5    74%   19-20, 29-30, 82->exit, 112, 138, 202-203, 212-214, 222-238, 255->258, 259, 269
nvtabular/ops/data_stats.py                                       56      2     24      3    94%   91->93, 95, 97->87, 102
nvtabular/ops/difference_lag.py                                   33      1     12      1    96%   73->75, 98
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             91     12     40      3    82%   63-67, 93, 121, 147, 151, 162-165
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         128      6     82      5    94%   72, 83, 93->95, 105->110, 137, 141-146
nvtabular/ops/hash_bucket.py                                      40      2     22      2    94%   73, 106->112, 118
nvtabular/ops/hashed_cross.py                                     36      4     17      3    87%   53, 66, 81, 91
nvtabular/ops/join_external.py                                    92     18     38      7    76%   20-21, 114, 116, 118, 135-161, 177->179, 216->227, 221
nvtabular/ops/join_groupby.py                                    101      7     38      4    92%   108, 115, 124, 131->130, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39      6     20      6    80%   59, 63, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       85     29     42      0    63%   21-22, 141-155, 163-185
nvtabular/ops/logop.py                                            19      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        89     10     22      1    88%   89, 97-98, 104, 137-138, 160-161, 165, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41      3     24      3    91%   47, 88-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154     11     68      4    91%   168->172, 176->185, 233-234, 237-238, 250-256, 347->350, 363
nvtabular/ops/value_counts.py                                     30      0      6      1    97%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   201     18     84     11    89%   28-29, 51, 84, 169, 175->189, 201-203, 317, 332-333, 351-352, 369, 445, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8393   1639   3507    368    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 78.22%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1583 passed, 10 skipped, 530 warnings in 1429.13s (0:23:49) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins3514949275174596629.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit a448183aa417ac9413bfb5aa01dbbb2163868262, no merge conflicts.
Running as SYSTEM
Setting status of a448183aa417ac9413bfb5aa01dbbb2163868262 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3969/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse a448183aa417ac9413bfb5aa01dbbb2163868262^{commit} # timeout=10
Checking out Revision a448183aa417ac9413bfb5aa01dbbb2163868262 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f a448183aa417ac9413bfb5aa01dbbb2163868262 # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk c5f76038caffbc99b931b58e7bcc31e260d51e80 # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins138871157457119717.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.6.0)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Found existing installation: nvtabular 0.8.0+7.gb459467
Can't uninstall 'nvtabular'. No files were found to uninstall.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+20.ga448183 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+20.ga448183 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+20.ga448183 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+20.ga448183 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+20.ga448183 is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+20.ga448183
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.5.0
Best match: tensorflow-metadata 1.5.0
Processing tensorflow_metadata-1.5.0-py3.8.egg
tensorflow-metadata 1.5.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/tensorflow_metadata-1.5.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.62.3
Best match: tqdm 4.62.3
Processing tqdm-4.62.3-py3.8.egg
tqdm 4.62.3 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages/tqdm-4.62.3-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.5
Best match: pandas 1.3.5
Processing pandas-1.3.5-py3.8-linux-x86_64.egg
pandas 1.3.5 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for googleapis-common-protos==1.54.0
Best match: googleapis-common-protos 1.54.0
Adding googleapis-common-protos 1.54.0 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for setuptools==59.6.0
Best match: setuptools 59.6.0
Adding setuptools 59.6.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.2
Best match: toolz 0.11.2
Processing toolz-0.11.2-py3.8.egg
toolz 0.11.2 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/toolz-0.11.2-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.3
Best match: msgpack 1.0.3
Processing msgpack-1.0.3-py3.8-linux-x86_64.egg
msgpack 1.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/msgpack-1.0.3-py3.8-linux-x86_64.egg
Searching for cloudpickle==2.0.0
Best match: cloudpickle 2.0.0
Processing cloudpickle-2.0.0-py3.8.egg
cloudpickle 2.0.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/cloudpickle-2.0.0-py3.8.egg
Searching for click==8.0.3
Best match: click 8.0.3
Processing click-8.0.3-py3.8.egg
click 8.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/click-8.0.3-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for packaging==21.3
Best match: packaging 21.3
Adding packaging 21.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Searching for pyparsing==3.0.6
Best match: pyparsing 3.0.6
Adding pyparsing 3.0.6 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Finished processing dependencies for nvtabular==0.8.0+20.ga448183
Running black --check
All done! ✨ 🍰 ✨
169 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1592 items / 1 skipped / 1591 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 19%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 20%]
tests/unit/test_tf4rec.py .                                              [ 20%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 23%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 25%]
...................................................                      [ 28%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py ....................            [ 35%]
tests/unit/graph/ops/test_selection.py ...                               [ 35%]
tests/unit/inference/test_ensemble.py .                                  [ 35%]
tests/unit/inference/test_export.py .                                    [ 35%]
tests/unit/inference/test_graph.py .                                     [ 35%]
tests/unit/inference/test_inference_ops.py ..                            [ 35%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 36%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 36%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 38%]
........................................s..                              [ 41%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 43%]
........................................................                 [ 46%]
tests/unit/ops/test_categorify.py ...................................... [ 48%]
.................................................................        [ 53%]
tests/unit/ops/test_column_similarity.py ........................        [ 54%]
tests/unit/ops/test_fill.py ............................................ [ 57%]
........                                                                 [ 57%]
tests/unit/ops/test_hash_bucket.py .........................             [ 59%]
tests/unit/ops/test_join.py ............................................ [ 62%]
........................................................................ [ 66%]
..................................                                       [ 68%]
tests/unit/ops/test_lambda.py ....                                       [ 69%]
tests/unit/ops/test_normalize.py ....................................... [ 71%]
..                                                                       [ 71%]
tests/unit/ops/test_ops.py ............................................. [ 74%]
..........................                                               [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 78%]
........................................................................ [ 82%]
........................................................................ [ 87%]
.......................................                                  [ 89%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
...........................................................              [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py .........................   [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
tests/unit/test_tf4rec.py: 1 warning
tests/unit/test_tools.py: 2 warnings
tests/unit/test_triton_inference.py: 7 warnings
tests/unit/inference/test_export.py: 1 warning
tests/unit/loader/test_tf_dataloader.py: 54 warnings
tests/unit/loader/test_torch_dataloader.py: 54 warnings
tests/unit/ops/test_categorify.py: 1 warning
tests/unit/ops/test_column_similarity.py: 7 warnings
tests/unit/ops/test_fill.py: 24 warnings
tests/unit/ops/test_join.py: 1 warning
tests/unit/ops/test_normalize.py: 28 warnings
tests/unit/ops/test_ops.py: 4 warnings
tests/unit/ops/test_target_encode.py: 21 warnings
tests/unit/workflow/test_workflow.py: 18 warnings
tests/unit/workflow/test_workflow_node.py: 1 warning
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_tools.py::test_cat_rep[None-1000]
tests/unit/test_tools.py::test_cat_rep[distro1-1000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (3) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[None-10000]
tests/unit/test_tools.py::test_cat_rep[distro1-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (30) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/inference/test_ensemble.py::test_workflow_tf_e2e_config_verification[parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/graph/ops/workflow.py:66: UserWarning: TF model expects int32 for column x_nvt, but workflow  is producing type float64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-cat, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:79: UserWarning: TF model expects int32 for column name-string, but workflow  is producing type int64. Overriding dtype in NVTabular workflow.
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column x is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column y is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/inference/test_export.py::test_export_run_ensemble_triton[tensorflow-parquet]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/inference/triton/ensemble.py:278: UserWarning: Column id is being generated by NVTabular workflow  but is unused in test_name_tf model
    warnings.warn(

tests/unit/loader/test_tf_dataloader.py::test_nested_list
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (2) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (25) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (35) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg/dask/dataframe/core.py:6778: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     79    166     29    75%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 274, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  72      2     22      1    95%   192, 196
nvtabular/graph/graph.py                                          55      1     36      1    98%   47
nvtabular/graph/node.py                                          263     43    142     16    80%   49, 76-84, 107, 137, 226, 236-237, 284, 302, 311, 321-326, 331, 353, 362-370, 379, 380->375, 394-395, 403, 404->387, 410-413, 417, 451-456, 475
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             16      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  22      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             16      1      2      0    94%   62
nvtabular/graph/ops/subtraction.py                                20      2      4      0    92%   49-50
nvtabular/graph/schema.py                                        120      6     59      5    94%   38, 65, 167, 174, 199, 202
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122      8     58     11    89%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 124-127, 169->185, 177, 181
nvtabular/graph/selector.py                                       78      0     40      0   100%
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             55      0     10      0   100%
nvtabular/inference/graph/node.py                                  3      0      2      0   100%
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         29      6     12      1    78%   12-13, 18, 35, 39, 45
nvtabular/inference/graph/ops/tensorflow.py                       45     11     14      1    76%   34-47
nvtabular/inference/graph/ops/workflow.py                         36      0     10      1    98%   65->62
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           290    139    106      7    55%   139-172, 217-261, 360-368, 394-410, 463-473, 522-562, 568-584, 588-655, 662->665, 665->661, 682->681, 747, 753-772, 778-802, 809
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      53     53     22      0     0%   27-125
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                              92     92     56      0     0%   27-177
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        31     31     10      0     0%   26-67
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          590     48    218     30    88%   34-35, 58, 80->156, 87, 101, 113-127, 140-153, 176, 205-206, 223->248, 234->248, 285-293, 313, 319, 337->339, 353, 371->381, 374, 423->435, 427, 549-554, 592-597, 713->720, 781->786, 787-788, 908, 912, 916, 922, 954, 971, 975, 982->984, 1092->exit, 1096->1093, 1103->1108, 1113->1123, 1128, 1150, 1177
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     17      0      4      0   100%
nvtabular/ops/bucketize.py                                        37     10     20      3    70%   53-55, 59->exit, 62-65, 84-87, 94
nvtabular/ops/categorify.py                                      655     69    352     47    87%   251, 253, 271, 275, 283, 291, 293, 320, 341-342, 378, 389->393, 397-404, 486-487, 511-516, 619, 715, 732, 777, 855-856, 871-875, 876->840, 894, 902, 909->exit, 933, 936->939, 988->986, 1048, 1053, 1074->1078, 1080->1035, 1086-1089, 1101, 1105, 1109, 1116, 1121-1124, 1202, 1204, 1274->1296, 1280->1296, 1297-1302, 1342, 1359->1364, 1363, 1373->1370, 1378->1370, 1385, 1388, 1396-1406
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               121     27     40      5    74%   19-20, 29-30, 82->exit, 112, 138, 202-203, 212-214, 222-238, 255->258, 259, 269
nvtabular/ops/data_stats.py                                       56      2     24      3    94%   91->93, 95, 97->87, 102
nvtabular/ops/difference_lag.py                                   33      1     12      1    96%   73->75, 98
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             91      9     40      4    85%   63-67, 93, 121, 147, 151, 164
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         128      6     82      5    94%   72, 83, 93->95, 105->110, 137, 141-146
nvtabular/ops/hash_bucket.py                                      40      2     22      2    94%   73, 106->112, 118
nvtabular/ops/hashed_cross.py                                     36      4     17      3    87%   53, 66, 81, 91
nvtabular/ops/join_external.py                                    92     18     38      7    76%   20-21, 114, 116, 118, 135-161, 177->179, 216->227, 221
nvtabular/ops/join_groupby.py                                    101      7     38      4    92%   108, 115, 124, 131->130, 215-216, 219-220
nvtabular/ops/lambdaop.py                                         39      6     20      6    80%   59, 63, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       85     29     42      0    63%   21-22, 141-155, 163-185
nvtabular/ops/logop.py                                            19      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        89     10     22      1    88%   89, 97-98, 104, 137-138, 160-161, 165, 176
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           41      3     24      3    91%   47, 88-90
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 154     11     68      4    91%   168->172, 176->185, 233-234, 237-238, 250-256, 347->350, 363
nvtabular/ops/value_counts.py                                     30      0      6      1    97%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   201     18     84     11    89%   28-29, 51, 84, 169, 175->189, 201-203, 317, 332-333, 351-352, 369, 445, 461-463, 476
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8407   1633   3497    370    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 78.31%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1583 passed, 10 skipped, 530 warnings in 1439.64s (0:23:59) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins4822877878986927525.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 171d3bf12cc179229806dbbada3b4c2465ddcb4b, no merge conflicts.
Running as SYSTEM
Setting status of 171d3bf12cc179229806dbbada3b4c2465ddcb4b to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/3971/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 171d3bf12cc179229806dbbada3b4c2465ddcb4b^{commit} # timeout=10
Checking out Revision 171d3bf12cc179229806dbbada3b4c2465ddcb4b (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 171d3bf12cc179229806dbbada3b4c2465ddcb4b # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk f20d34ecd9a0cb97c1c0beb806e7af7610297ea9 # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins1565294680297190064.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.8.0)
Collecting setuptools
  Downloading setuptools-60.0.0-py3-none-any.whl (952 kB)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.0)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.8.1)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Installing collected packages: setuptools
  Attempting uninstall: setuptools
    Found existing installation: setuptools 59.8.0
    Uninstalling setuptools-59.8.0:
      Successfully uninstalled setuptools-59.8.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
dask-cudf 21.8.0a0+340.g0a00579350 requires cupy-cuda115, which is not installed.
cudf 21.8.0a0+340.g0a00579350 requires cupy-cuda115, which is not installed.
tensorflow-gpu 2.7.0 requires keras<2.8,>=2.7.0rc0, but you have keras 2.6.0 which is incompatible.
tensorflow-gpu 2.7.0 requires tensorflow-estimator<2.8,~=2.7.0rc0, but you have tensorflow-estimator 2.6.0 which is incompatible.
pytorch-lightning 1.5.5 requires torchmetrics>=0.4.1, but you have torchmetrics 0.3.2 which is incompatible.
dask-cudf 21.8.0a0+340.g0a00579350 requires pandas<1.3.0dev0,>=1.0, but you have pandas 1.3.5 which is incompatible.
cudf 21.8.0a0+340.g0a00579350 requires pandas<1.3.0dev0,>=1.0, but you have pandas 1.3.5 which is incompatible.
Successfully installed setuptools-60.0.0
Found existing installation: nvtabular 0.8.0+7.gb459467
Can't uninstall 'nvtabular'. No files were found to uninstall.
running develop
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
Traceback (most recent call last):
  File "setup.py", line 92, in <module>
    setup(
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup
    return distutils.core.setup(**attrs)
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 148, in setup
    return run_commands(dist)
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
    dist.run_commands()
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
    self.run_command(cmd)
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 985, in run_command
    cmd_obj.ensure_finalized()
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 107, in ensure_finalized
    self.finalize_options()
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/develop.py", line 52, in finalize_options
    easy_install.finalize_options(self)
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 263, in finalize_options
    self._fix_install_dir_for_user_site()
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 375, in _fix_install_dir_for_user_site
    self.select_scheme(scheme_name)
  File "/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py", line 716, in select_scheme
    scheme = INSTALL_SCHEMES[name]
KeyError: 'unix_user'
Build step 'Execute shell' marked build as failure
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins3171176067599887369.sh
</pre></details>
@benfred @karlhigley @jperez999 - **Just a note**:  No need to get this in for the nearest/current 22.01 release. However, we probably want to get it in soon after that to make sure there is time to find and fix/simplify old code with explicit `client` passing.
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 5dddeeeee1be3d7f8462934f0d83968908b5d51f, no merge conflicts.
Running as SYSTEM
Setting status of 5dddeeeee1be3d7f8462934f0d83968908b5d51f to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/4030/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 5dddeeeee1be3d7f8462934f0d83968908b5d51f^{commit} # timeout=10
Checking out Revision 5dddeeeee1be3d7f8462934f0d83968908b5d51f (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 5dddeeeee1be3d7f8462934f0d83968908b5d51f # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk fb8c0569d8b28447a7eabbdedb52843aec668c17 # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins384976404938074734.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.4.0)
Collecting setuptools
  Downloading setuptools-60.5.0-py3-none-any.whl (958 kB)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.1)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.9.0)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Found existing installation: nvtabular 0.8.0+7.gb459467
Can't uninstall 'nvtabular'. No files were found to uninstall.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+35.g5dddeee -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+35.g5dddeee -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+35.g5dddeee -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+35.g5dddeee -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+35.g5dddeee is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+35.g5dddeee
Searching for packaging==21.3
Best match: packaging 21.3
Adding packaging 21.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.5.0
Best match: tensorflow-metadata 1.5.0
Processing tensorflow_metadata-1.5.0-py3.8.egg
tensorflow-metadata 1.5.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/tensorflow_metadata-1.5.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.62.3
Best match: tqdm 4.62.3
Processing tqdm-4.62.3-py3.8.egg
tqdm 4.62.3 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages/tqdm-4.62.3-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.5
Best match: pandas 1.3.5
Processing pandas-1.3.5-py3.8-linux-x86_64.egg
pandas 1.3.5 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for pyparsing==3.0.6
Best match: pyparsing 3.0.6
Adding pyparsing 3.0.6 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for googleapis-common-protos==1.54.0
Best match: googleapis-common-protos 1.54.0
Adding googleapis-common-protos 1.54.0 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for setuptools==59.7.0
Best match: setuptools 59.7.0
Adding setuptools 59.7.0 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.2
Best match: toolz 0.11.2
Processing toolz-0.11.2-py3.8.egg
toolz 0.11.2 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/toolz-0.11.2-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.3
Best match: msgpack 1.0.3
Processing msgpack-1.0.3-py3.8-linux-x86_64.egg
msgpack 1.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/msgpack-1.0.3-py3.8-linux-x86_64.egg
Searching for cloudpickle==2.0.0
Best match: cloudpickle 2.0.0
Processing cloudpickle-2.0.0-py3.8.egg
cloudpickle 2.0.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/cloudpickle-2.0.0-py3.8.egg
Searching for click==8.0.3
Best match: click 8.0.3
Processing click-8.0.3-py3.8.egg
click 8.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/click-8.0.3-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Finished processing dependencies for nvtabular==0.8.0+35.g5dddeee
Running black --check
All done! ✨ 🍰 ✨
174 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1641 items / 3 skipped / 1638 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 18%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 19%]
tests/unit/test_tf4rec.py .                                              [ 19%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 23%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 24%]
...................................................                      [ 27%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 27%]
tests/unit/graph/test_base_operator.py ....                              [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py .....................           [ 34%]
tests/unit/graph/ops/test_selection.py ...                               [ 34%]
tests/unit/inference/test_graph.py .                                     [ 34%]
tests/unit/inference/test_inference_ops.py ..                            [ 34%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 35%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 35%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 37%]
........................................s..                              [ 40%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 41%]
........................................................                 [ 45%]
tests/unit/ops/test_categorify.py ...................................... [ 47%]
........................................................................ [ 52%]
...............................                                          [ 53%]
tests/unit/ops/test_column_similarity.py ........................        [ 55%]
tests/unit/ops/test_fill.py ............................................ [ 58%]
........                                                                 [ 58%]
tests/unit/ops/test_groupyby.py .......                                  [ 58%]
tests/unit/ops/test_hash_bucket.py .........................             [ 60%]
tests/unit/ops/test_join.py ............................................ [ 63%]
........................................................................ [ 67%]
..................................                                       [ 69%]
tests/unit/ops/test_lambda.py ....                                       [ 69%]
tests/unit/ops/test_normalize.py ....................................... [ 72%]
..                                                                       [ 72%]
tests/unit/ops/test_ops.py ............................................. [ 75%]
..........................                                               [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 79%]
........................................................................ [ 83%]
........................................................................ [ 87%]
.......................................                                  [ 90%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
............................................................             [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py .........................   [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
tests/unit/test_tf4rec.py: 1 warning
tests/unit/test_tools.py: 2 warnings
tests/unit/test_triton_inference.py: 7 warnings
tests/unit/loader/test_tf_dataloader.py: 54 warnings
tests/unit/loader/test_torch_dataloader.py: 54 warnings
tests/unit/ops/test_categorify.py: 1 warning
tests/unit/ops/test_column_similarity.py: 7 warnings
tests/unit/ops/test_fill.py: 24 warnings
tests/unit/ops/test_join.py: 1 warning
tests/unit/ops/test_normalize.py: 28 warnings
tests/unit/ops/test_ops.py: 4 warnings
tests/unit/ops/test_target_encode.py: 21 warnings
tests/unit/workflow/test_workflow.py: 18 warnings
tests/unit/workflow/test_workflow_node.py: 1 warning
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_tools.py::test_cat_rep[None-1000]
tests/unit/test_tools.py::test_cat_rep[distro1-1000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (3) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[None-10000]
tests/unit/test_tools.py::test_cat_rep[distro1-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (30) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_nested_list
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (2) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (25) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (35) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg/dask/dataframe/core.py:6778: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     79    166     29    75%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 274, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  95      2     36      4    94%   143->148, 157->161, 169->173, 227, 231
nvtabular/graph/graph.py                                          44      5     24      0    87%   84-89
nvtabular/graph/node.py                                          282     54    151     19    77%   49, 73-81, 136, 225, 235-236, 283, 301, 316-321, 326, 328, 334, 348, 358-369, 374->377, 388-396, 405, 406->401, 420-421, 429, 430->413, 436-439, 443, 470, 477-482, 501
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             18      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  20      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             15      1      2      0    94%   60
nvtabular/graph/ops/subtraction.py                                21      2      4      0    92%   54-55
nvtabular/graph/schema.py                                        129      8     65      6    93%   38, 64, 156, 161->exit, 165, 178, 185, 210, 213
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122      8     58     11    89%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 124-127, 169->185, 177, 181
nvtabular/graph/selector.py                                       88      1     48      1    99%   158
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             57     42     26      0    20%   39-103, 107-118
nvtabular/inference/graph/graph.py                                27      4     14      2    80%   42, 50-57
nvtabular/inference/graph/node.py                                 15      9      4      0    42%   22-23, 26-27, 31-36
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         32      6     12      1    80%   13-14, 19, 36, 40, 49
nvtabular/inference/graph/ops/tensorflow.py                       50     18     16      2    64%   34-47, 79-83, 92-95
nvtabular/inference/graph/ops/workflow.py                         30      1      4      1    94%   49
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           285    147    100      9    51%   89-93, 156-192, 236-284, 301-305, 377-385, 414-430, 483-493, 542-582, 588-604, 608-675, 682->685, 685->681, 702->701, 751, 757-776, 782-806, 813
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      52     52     22      0     0%   27-124
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                             114    114     62      0     0%   27-210
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        32     32     10      0     0%   26-68
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          591     48    218     30    88%   35-36, 59, 81->161, 92, 106, 118-132, 145-158, 181, 210-211, 228->253, 239->253, 290-298, 318, 324, 342->344, 358, 376->386, 379, 428->440, 432, 554-559, 597-602, 718->725, 786->791, 792-793, 913, 917, 921, 927, 959, 976, 980, 987->989, 1097->exit, 1101->1098, 1108->1113, 1118->1128, 1133, 1155, 1182
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     15      0      2      0   100%
nvtabular/ops/bucketize.py                                        38      9     20      3    72%   52-54, 58->exit, 61-64, 83-86
nvtabular/ops/categorify.py                                      658     70    350     47    87%   252, 254, 272, 276, 284, 292, 294, 321, 342-343, 390->394, 398-405, 451, 459, 482-483, 560-565, 636, 732, 749, 794, 872-873, 888-892, 893->857, 911, 919, 926->exit, 950, 953->956, 1005->1003, 1065, 1070, 1091->1095, 1097->1052, 1103-1106, 1118, 1122, 1126, 1133, 1138-1141, 1219, 1221, 1291->1314, 1297->1314, 1315-1320, 1365, 1385->1390, 1389, 1395, 1398, 1406-1416
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               122     26     38      5    74%   19-20, 29-30, 82->exit, 112, 207-208, 217-219, 227-243, 260->263, 264, 274
nvtabular/ops/data_stats.py                                       56      1     24      3    95%   91->93, 95, 97->87
nvtabular/ops/difference_lag.py                                   39      0     14      1    98%   73->75
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             65      5     26      1    91%   62-66, 102
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         110      3     72      5    96%   72, 83, 93->95, 105->110, 129
nvtabular/ops/hash_bucket.py                                      43      1     22      2    95%   73, 110->116
nvtabular/ops/hashed_cross.py                                     37      4     17      3    87%   52, 65, 82, 92
nvtabular/ops/join_external.py                                    96      8     34      7    88%   20-21, 114, 116, 118, 150->152, 205-206, 216->227, 221
nvtabular/ops/join_groupby.py                                    112      5     47      6    93%   108, 115, 124, 131->130, 173->170, 176->170, 235-236
nvtabular/ops/lambdaop.py                                         46      6     22      6    82%   59, 63, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       86     29     42      0    63%   21-22, 142-156, 164-186
nvtabular/ops/logop.py                                            21      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        93      4     22      1    94%   89, 139-140, 167
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           29      3     14      3    86%   45, 70-72
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 175      8     76      4    94%   167->171, 175->184, 270-271, 287-293, 384->387
nvtabular/ops/value_counts.py                                     34      0      6      1    98%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   202     16     84     11    91%   28-29, 51, 84, 170, 176->190, 202-204, 318, 333-334, 370, 446, 462-464, 477
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8530   1710   3527    381    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 77.59%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [1] tests/unit/inference/test_ensemble.py:32: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [1] tests/unit/inference/test_export.py:8: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1632 passed, 12 skipped, 523 warnings in 1434.52s (0:23:54) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins8375887161931742329.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 0604484ce64100d646e14ee5e908e7d7c08f6efc, no merge conflicts.
Running as SYSTEM
Setting status of 0604484ce64100d646e14ee5e908e7d7c08f6efc to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/4032/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 0604484ce64100d646e14ee5e908e7d7c08f6efc^{commit} # timeout=10
Checking out Revision 0604484ce64100d646e14ee5e908e7d7c08f6efc (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 0604484ce64100d646e14ee5e908e7d7c08f6efc # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk 2f162a23279bea4dcc443b121fca0a7673d1391c # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins6633801229026570181.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.4.0)
Collecting setuptools
  Downloading setuptools-60.5.0-py3-none-any.whl (958 kB)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.1)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.9.0)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Found existing installation: nvtabular 0.8.0+7.gb459467
Can't uninstall 'nvtabular'. No files were found to uninstall.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+37.g0604484 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+37.g0604484 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+37.g0604484 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.8.0+37.g0604484 -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.8.0+37.g0604484 is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Processing dependencies for nvtabular==0.8.0+37.g0604484
Searching for packaging==21.3
Best match: packaging 21.3
Adding packaging 21.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for protobuf==3.19.1
Best match: protobuf 3.19.1
Adding protobuf 3.19.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for tensorflow-metadata==1.5.0
Best match: tensorflow-metadata 1.5.0
Processing tensorflow_metadata-1.5.0-py3.8.egg
tensorflow-metadata 1.5.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/tensorflow_metadata-1.5.0-py3.8.egg
Searching for pyarrow==4.0.1
Best match: pyarrow 4.0.1
Adding pyarrow 4.0.1 to easy-install.pth file
Installing plasma_store script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages
Searching for tqdm==4.62.3
Best match: tqdm 4.62.3
Processing tqdm-4.62.3-py3.8.egg
tqdm 4.62.3 is already the active version in easy-install.pth
Installing tqdm script to /var/jenkins_home/.local/bin

Using /usr/local/lib/python3.8/dist-packages/tqdm-4.62.3-py3.8.egg
Searching for numba==0.54.1
Best match: numba 0.54.1
Adding numba 0.54.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pandas==1.3.5
Best match: pandas 1.3.5
Processing pandas-1.3.5-py3.8-linux-x86_64.egg
pandas 1.3.5 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg
Searching for distributed==2021.7.1
Best match: distributed 2021.7.1
Processing distributed-2021.7.1-py3.8.egg
distributed 2021.7.1 is already the active version in easy-install.pth
Installing dask-ssh script to /var/jenkins_home/.local/bin
Installing dask-scheduler script to /var/jenkins_home/.local/bin
Installing dask-worker script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages/distributed-2021.7.1-py3.8.egg
Searching for dask==2021.7.1
Best match: dask 2021.7.1
Processing dask-2021.7.1-py3.8.egg
dask 2021.7.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg
Searching for pyparsing==3.0.6
Best match: pyparsing 3.0.6
Adding pyparsing 3.0.6 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for googleapis-common-protos==1.54.0
Best match: googleapis-common-protos 1.54.0
Adding googleapis-common-protos 1.54.0 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for absl-py==0.12.0
Best match: absl-py 0.12.0
Processing absl_py-0.12.0-py3.8.egg
absl-py 0.12.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/absl_py-0.12.0-py3.8.egg
Searching for numpy==1.20.3
Best match: numpy 1.20.3
Adding numpy 1.20.3 to easy-install.pth file
Installing f2py script to /var/jenkins_home/.local/bin
Installing f2py3 script to /var/jenkins_home/.local/bin
Installing f2py3.8 script to /var/jenkins_home/.local/bin

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for llvmlite==0.37.0
Best match: llvmlite 0.37.0
Processing llvmlite-0.37.0-py3.8-linux-x86_64.egg
llvmlite 0.37.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/llvmlite-0.37.0-py3.8-linux-x86_64.egg
Searching for setuptools==59.7.0
Best match: setuptools 59.7.0
Adding setuptools 59.7.0 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for pytz==2021.3
Best match: pytz 2021.3
Adding pytz 2021.3 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for python-dateutil==2.8.2
Best match: python-dateutil 2.8.2
Adding python-dateutil 2.8.2 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for zict==2.0.0
Best match: zict 2.0.0
Processing zict-2.0.0-py3.8.egg
zict 2.0.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/zict-2.0.0-py3.8.egg
Searching for tornado==6.1
Best match: tornado 6.1
Processing tornado-6.1-py3.8-linux-x86_64.egg
tornado 6.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tornado-6.1-py3.8-linux-x86_64.egg
Searching for toolz==0.11.2
Best match: toolz 0.11.2
Processing toolz-0.11.2-py3.8.egg
toolz 0.11.2 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/toolz-0.11.2-py3.8.egg
Searching for tblib==1.7.0
Best match: tblib 1.7.0
Processing tblib-1.7.0-py3.8.egg
tblib 1.7.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/tblib-1.7.0-py3.8.egg
Searching for sortedcontainers==2.4.0
Best match: sortedcontainers 2.4.0
Processing sortedcontainers-2.4.0-py3.8.egg
sortedcontainers 2.4.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/sortedcontainers-2.4.0-py3.8.egg
Searching for PyYAML==5.4.1
Best match: PyYAML 5.4.1
Processing PyYAML-5.4.1-py3.8-linux-x86_64.egg
PyYAML 5.4.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/PyYAML-5.4.1-py3.8-linux-x86_64.egg
Searching for psutil==5.8.0
Best match: psutil 5.8.0
Processing psutil-5.8.0-py3.8-linux-x86_64.egg
psutil 5.8.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/psutil-5.8.0-py3.8-linux-x86_64.egg
Searching for msgpack==1.0.3
Best match: msgpack 1.0.3
Processing msgpack-1.0.3-py3.8-linux-x86_64.egg
msgpack 1.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/msgpack-1.0.3-py3.8-linux-x86_64.egg
Searching for cloudpickle==2.0.0
Best match: cloudpickle 2.0.0
Processing cloudpickle-2.0.0-py3.8.egg
cloudpickle 2.0.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/cloudpickle-2.0.0-py3.8.egg
Searching for click==8.0.3
Best match: click 8.0.3
Processing click-8.0.3-py3.8.egg
click 8.0.3 is already the active version in easy-install.pth

Using /usr/local/lib/python3.8/dist-packages/click-8.0.3-py3.8.egg
Searching for partd==1.2.0
Best match: partd 1.2.0
Processing partd-1.2.0-py3.8.egg
partd 1.2.0 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/partd-1.2.0-py3.8.egg
Searching for fsspec==2021.11.1
Best match: fsspec 2021.11.1
Adding fsspec 2021.11.1 to easy-install.pth file

Using /usr/local/lib/python3.8/dist-packages
Searching for six==1.15.0
Best match: six 1.15.0
Adding six 1.15.0 to easy-install.pth file

Using /var/jenkins_home/.local/lib/python3.8/site-packages
Searching for HeapDict==1.0.1
Best match: HeapDict 1.0.1
Processing HeapDict-1.0.1-py3.8.egg
HeapDict 1.0.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/HeapDict-1.0.1-py3.8.egg
Searching for locket==0.2.1
Best match: locket 0.2.1
Processing locket-0.2.1-py3.8.egg
locket 0.2.1 is already the active version in easy-install.pth

Using /var/jenkins_home/.local/lib/python3.8/site-packages/locket-0.2.1-py3.8.egg
Finished processing dependencies for nvtabular==0.8.0+37.g0604484
Running black --check
All done! ✨ 🍰 ✨
174 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, forked-1.4.0, cov-3.0.0
collected 1641 items / 3 skipped / 1638 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  7%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 18%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 19%]
tests/unit/test_tf4rec.py .                                              [ 19%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 23%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 24%]
...................................................                      [ 27%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 27%]
tests/unit/graph/test_base_operator.py ....                              [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py .....................           [ 34%]
tests/unit/graph/ops/test_selection.py ...                               [ 34%]
tests/unit/inference/test_graph.py .                                     [ 34%]
tests/unit/inference/test_inference_ops.py ..                            [ 34%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 35%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 35%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 37%]
........................................s..                              [ 40%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 41%]
........................................................                 [ 45%]
tests/unit/ops/test_categorify.py ...................................... [ 47%]
........................................................................ [ 52%]
...............................                                          [ 53%]
tests/unit/ops/test_column_similarity.py ........................        [ 55%]
tests/unit/ops/test_fill.py ............................................ [ 58%]
........                                                                 [ 58%]
tests/unit/ops/test_groupyby.py .......                                  [ 58%]
tests/unit/ops/test_hash_bucket.py .........................             [ 60%]
tests/unit/ops/test_join.py ............................................ [ 63%]
........................................................................ [ 67%]
..................................                                       [ 69%]
tests/unit/ops/test_lambda.py ....                                       [ 69%]
tests/unit/ops/test_normalize.py ....................................... [ 72%]
..                                                                       [ 72%]
tests/unit/ops/test_ops.py ............................................. [ 75%]
..........................                                               [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 79%]
........................................................................ [ 83%]
........................................................................ [ 87%]
.......................................                                  [ 90%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
............................................................             [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py .........................   [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 3 warnings
tests/unit/test_io.py: 24 warnings
tests/unit/test_tf4rec.py: 1 warning
tests/unit/test_tools.py: 2 warnings
tests/unit/test_triton_inference.py: 7 warnings
tests/unit/loader/test_tf_dataloader.py: 54 warnings
tests/unit/loader/test_torch_dataloader.py: 54 warnings
tests/unit/ops/test_categorify.py: 1 warning
tests/unit/ops/test_column_similarity.py: 7 warnings
tests/unit/ops/test_fill.py: 24 warnings
tests/unit/ops/test_join.py: 1 warning
tests/unit/ops/test_normalize.py: 28 warnings
tests/unit/ops/test_ops.py: 4 warnings
tests/unit/ops/test_target_encode.py: 21 warnings
tests/unit/workflow/test_workflow.py: 18 warnings
tests/unit/workflow/test_workflow_node.py: 1 warning
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (1) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_tools.py::test_cat_rep[None-1000]
tests/unit/test_tools.py::test_cat_rep[distro1-1000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (3) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/test_tools.py::test_cat_rep[None-10000]
tests/unit/test_tools.py::test_cat_rep[distro1-10000]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (30) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_nested_list
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (2) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (25) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[False]
tests/unit/loader/test_tf_dataloader.py::test_sparse_tensors[True]
  /usr/local/lib/python3.8/dist-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: [1mGrid size (35) < 2 * SM count (112) will likely result in GPU under utilization due to low occupancy.[0m
    warn(NumbaPerformanceWarning(msg))

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /usr/local/lib/python3.8/dist-packages/pandas-1.3.5-py3.8-linux-x86_64.egg/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /var/jenkins_home/.local/lib/python3.8/site-packages/dask-2021.7.1-py3.8.egg/dask/dataframe/core.py:6778: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     79    166     29    75%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 274, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                  95      2     36      4    94%   143->148, 157->161, 169->173, 227, 231
nvtabular/graph/graph.py                                          44      5     24      0    87%   84-89
nvtabular/graph/node.py                                          282     54    151     19    77%   49, 73-81, 136, 225, 235-236, 283, 301, 316-321, 326, 328, 334, 348, 358-369, 374->377, 388-396, 405, 406->401, 420-421, 429, 430->413, 436-439, 443, 470, 477-482, 501
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             18      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  20      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             15      1      2      0    94%   60
nvtabular/graph/ops/subtraction.py                                21      2      4      0    92%   54-55
nvtabular/graph/schema.py                                        129      8     65      6    93%   38, 64, 156, 161->exit, 165, 178, 185, 210, 213
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 122      8     58     11    89%   45, 61->68, 64->66, 75, 92->97, 95->97, 118->133, 124-127, 169->185, 177, 181
nvtabular/graph/selector.py                                       88      1     48      1    99%   158
nvtabular/graph/tags.py                                           16      0      2      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             57     42     26      0    20%   39-103, 107-118
nvtabular/inference/graph/graph.py                                27      4     14      2    80%   42, 50-57
nvtabular/inference/graph/node.py                                 15      9      4      0    42%   22-23, 26-27, 31-36
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         32      6     12      1    80%   13-14, 19, 36, 40, 49
nvtabular/inference/graph/ops/tensorflow.py                       50     18     16      2    64%   34-47, 79-83, 92-95
nvtabular/inference/graph/ops/workflow.py                         30      1      4      1    94%   49
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           285    147    100      9    51%   89-93, 156-192, 236-284, 301-305, 377-385, 414-430, 483-493, 542-582, 588-604, 608-675, 682->685, 685->681, 702->701, 751, 757-776, 782-806, 813
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      52     52     22      0     0%   27-124
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                             114    114     62      0     0%   27-210
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        32     32     10      0     0%   26-68
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          345     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          591     48    218     30    88%   35-36, 59, 81->161, 92, 106, 118-132, 145-158, 181, 210-211, 228->253, 239->253, 290-298, 318, 324, 342->344, 358, 376->386, 379, 428->440, 432, 554-559, 597-602, 718->725, 786->791, 792-793, 913, 917, 921, 927, 959, 976, 980, 987->989, 1097->exit, 1101->1098, 1108->1113, 1118->1128, 1133, 1155, 1182
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     15      0      2      0   100%
nvtabular/ops/bucketize.py                                        38      9     20      3    72%   52-54, 58->exit, 61-64, 83-86
nvtabular/ops/categorify.py                                      658     70    350     47    87%   252, 254, 272, 276, 284, 292, 294, 321, 342-343, 390->394, 398-405, 451, 459, 482-483, 560-565, 636, 732, 749, 794, 872-873, 888-892, 893->857, 911, 919, 926->exit, 950, 953->956, 1005->1003, 1065, 1070, 1091->1095, 1097->1052, 1103-1106, 1118, 1122, 1126, 1133, 1138-1141, 1219, 1221, 1291->1314, 1297->1314, 1315-1320, 1365, 1385->1390, 1389, 1395, 1398, 1406-1416
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               122     26     38      5    74%   19-20, 29-30, 82->exit, 112, 207-208, 217-219, 227-243, 260->263, 264, 274
nvtabular/ops/data_stats.py                                       56      1     24      3    95%   91->93, 95, 97->87
nvtabular/ops/difference_lag.py                                   39      0     14      1    98%   73->75
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             65      5     26      1    91%   62-66, 102
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         110      3     72      5    96%   72, 83, 93->95, 105->110, 129
nvtabular/ops/hash_bucket.py                                      43      1     22      2    95%   73, 110->116
nvtabular/ops/hashed_cross.py                                     37      4     17      3    87%   52, 65, 82, 92
nvtabular/ops/join_external.py                                    96      8     34      7    88%   20-21, 114, 116, 118, 150->152, 205-206, 216->227, 221
nvtabular/ops/join_groupby.py                                    112      5     47      6    93%   108, 115, 124, 131->130, 173->170, 176->170, 235-236
nvtabular/ops/lambdaop.py                                         46      6     22      6    82%   59, 63, 77, 89, 94, 103
nvtabular/ops/list_slice.py                                       86     29     42      0    63%   21-22, 142-156, 164-186
nvtabular/ops/logop.py                                            21      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        93      4     22      1    94%   89, 139-140, 167
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           29      3     14      3    86%   45, 70-72
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 175      8     76      4    94%   167->171, 175->184, 270-271, 287-293, 384->387
nvtabular/ops/value_counts.py                                     34      0      6      1    98%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   202     16     84     11    91%   28-29, 51, 84, 170, 176->190, 202-204, 318, 333-334, 370, 446, 462-464, 477
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8530   1710   3527    381    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 77.59%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [1] tests/unit/inference/test_ensemble.py:32: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [1] tests/unit/inference/test_export.py:8: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1632 passed, 12 skipped, 523 warnings in 1415.05s (0:23:35) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins3566379501056170800.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 837948fde53f7cefe41d81945629320d4afa0b08, no merge conflicts.
Running as SYSTEM
Setting status of 837948fde53f7cefe41d81945629320d4afa0b08 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/4063/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 837948fde53f7cefe41d81945629320d4afa0b08^{commit} # timeout=10
Checking out Revision 837948fde53f7cefe41d81945629320d4afa0b08 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 837948fde53f7cefe41d81945629320d4afa0b08 # timeout=10
Commit message: "Merge branch 'main' into auto-client"
 > git rev-list --no-walk 86dac2ed183c35b993e754768e2db0fb74881721 # timeout=10
First time build. Skipping changelog.
[nvtabular_tests] $ /bin/bash /tmp/jenkins4086975882428355825.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.4.0)
Collecting setuptools
  Downloading setuptools-60.5.0-py3-none-any.whl (958 kB)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.1)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.9.0)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Found existing installation: nvtabular 0.8.0+24.gd534733
Can't uninstall 'nvtabular'. No files were found to uninstall.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+18.g837948f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+18.g837948f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+18.g837948f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+18.g837948f -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.9.0+18.g837948f is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Running black --check
All done! ✨ 🍰 ✨
176 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.8) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, anyio-3.4.0, forked-1.4.0, cov-3.0.0
collected 1648 items / 3 skipped / 1645 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  6%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 18%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 19%]
tests/unit/test_tf4rec.py .                                              [ 19%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 22%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 24%]
...................................................                      [ 27%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 27%]
tests/unit/graph/test_base_operator.py ....                              [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py .....................           [ 34%]
tests/unit/graph/test_tags.py ......                                     [ 34%]
tests/unit/graph/ops/test_selection.py ...                               [ 34%]
tests/unit/inference/test_graph.py .                                     [ 34%]
tests/unit/inference/test_inference_ops.py ..                            [ 35%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 35%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 35%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 37%]
........................................s..                              [ 40%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 42%]
........................................................                 [ 45%]
tests/unit/ops/test_categorify.py ...................................... [ 47%]
........................................................................ [ 52%]
...............................                                          [ 54%]
tests/unit/ops/test_column_similarity.py ........................        [ 55%]
tests/unit/ops/test_fill.py ............................................ [ 58%]
........                                                                 [ 58%]
tests/unit/ops/test_groupyby.py .......                                  [ 59%]
tests/unit/ops/test_hash_bucket.py .........................             [ 60%]
tests/unit/ops/test_join.py ............................................ [ 63%]
........................................................................ [ 67%]
..................................                                       [ 69%]
tests/unit/ops/test_lambda.py ..........                                 [ 70%]
tests/unit/ops/test_normalize.py ....................................... [ 72%]
..                                                                       [ 72%]
tests/unit/ops/test_ops.py ............................................. [ 75%]
....................                                                     [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 79%]
........................................................................ [ 83%]
........................................................................ [ 87%]
.......................................                                  [ 90%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
.........................................................                [ 97%]
tests/unit/workflow/test_workflow_chaining.py ...                        [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py ..........................  [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_io.py::test_validate_and_regenerate_dataset
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/parquet.py:519: DeprecationWarning: 'ParquetDataset.pieces' attribute is deprecated as of pyarrow 5.0.0 and will be removed in a future version. Specify 'use_legacy_dataset=False' while constructing the ParquetDataset, and then use the '.fragments' attribute instead.
    paths = [p.path for p in pa_dataset.pieces]

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /usr/local/lib/python3.8/dist-packages/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /usr/local/lib/python3.8/dist-packages/dask/dataframe/core.py:6871: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     78    166     28    76%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                 111      2     38      4    95%   151->157, 170->176, 181->185, 250, 254
nvtabular/graph/graph.py                                          57      9     32      1    82%   39, 100-102, 106-111
nvtabular/graph/node.py                                          285     53    154     20    77%   49, 73-81, 140, 208->211, 228->231, 239-240, 287, 305, 320-325, 330, 332, 338, 352, 362-373, 378->381, 392-400, 409, 410->405, 424-425, 433, 434->417, 440-443, 447, 474, 481-486, 509
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             18      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  20      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             15      1      2      0    94%   60
nvtabular/graph/ops/subtraction.py                                21      2      4      0    92%   54-55
nvtabular/graph/schema.py                                        128      8     63      6    93%   39, 63, 169, 174->exit, 178, 191, 198, 223, 226
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 126     11     58     10    88%   57-62, 67->74, 70->72, 81, 98->103, 101->103, 124->139, 130-133, 175->191, 183, 187
nvtabular/graph/selector.py                                       88      1     48      1    99%   158
nvtabular/graph/tags.py                                           59      0     22      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             57     42     26      0    20%   39-103, 107-118
nvtabular/inference/graph/graph.py                                27      4     14      2    80%   42, 50-57
nvtabular/inference/graph/node.py                                 15      9      4      0    42%   22-23, 26-27, 31-36
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         32      6     12      1    80%   13-14, 19, 36, 40, 49
nvtabular/inference/graph/ops/tensorflow.py                       50     18     16      2    64%   34-47, 79-83, 92-95
nvtabular/inference/graph/ops/workflow.py                         30      1      4      1    94%   51
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           281    148     96      7    49%   157-193, 237-285, 302-306, 378-386, 415-431, 483-493, 542-582, 588-604, 608-675, 701-702, 734, 756, 762-781, 787-811, 818
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      52     52     22      0     0%   27-124
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                             114    114     62      0     0%   27-210
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        32     32     10      0     0%   26-68
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          346     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          591     35    218     34    91%   35-36, 59, 81->161, 93, 106, 120->128, 131, 145->exit, 181, 210-211, 228->253, 239->253, 290-298, 318, 324, 342->344, 358, 376->386, 379, 384-385, 428->440, 432, 554-559, 597-602, 718->725, 786->791, 792-793, 913, 917, 921, 927, 959, 976, 980, 987->989, 1097->exit, 1101->1098, 1108->1113, 1118->1128, 1133, 1155, 1182
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     15      0      2      0   100%
nvtabular/ops/bucketize.py                                        40      9     20      3    73%   52-54, 58->exit, 61-64, 83-86
nvtabular/ops/categorify.py                                      658     70    350     48    86%   252, 254, 272, 276, 284, 292, 294, 321, 342-343, 390->394, 398-405, 451, 459, 482-483, 560-565, 636, 732, 749, 794, 872-873, 888-892, 893->857, 911, 919, 926->exit, 950, 953->956, 1005->1003, 1065, 1070, 1091->1095, 1097->1052, 1103-1106, 1118, 1122, 1126, 1133, 1138-1141, 1219, 1221, 1291->1314, 1297->1314, 1315-1320, 1365, 1378->1381, 1385->1390, 1389, 1395, 1398, 1406-1416
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               122     26     38      5    74%   19-20, 29-30, 82->exit, 112, 207-208, 217-219, 227-243, 260->263, 264, 274
nvtabular/ops/data_stats.py                                       56      1     24      3    95%   91->93, 95, 97->87
nvtabular/ops/difference_lag.py                                   42      0     14      1    98%   73->75
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             76      5     30      1    92%   63-67, 109
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         127      4     84      6    95%   72, 83, 93->95, 104->109, 131, 216
nvtabular/ops/hash_bucket.py                                      43      1     22      2    95%   73, 112->118
nvtabular/ops/hashed_cross.py                                     38      3     17      3    89%   52, 65, 93
nvtabular/ops/join_external.py                                    96      8     34      7    88%   20-21, 114, 116, 118, 150->152, 205-206, 216->227, 221
nvtabular/ops/join_groupby.py                                    127      5     57      6    94%   113, 120, 129, 136->135, 178->175, 181->175, 259-260
nvtabular/ops/lambdaop.py                                         61      6     22      6    86%   59, 63, 81, 93, 98, 107
nvtabular/ops/list_slice.py                                       89     29     42      0    64%   21-22, 146-160, 168-190
nvtabular/ops/logop.py                                            21      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        93      4     22      1    94%   89, 139-140, 167
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           29      3     14      3    86%   45, 70-72
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 182      9     76      5    93%   169->173, 177->186, 274, 283-284, 297-303, 396->399
nvtabular/ops/value_counts.py                                     34      0      6      1    98%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   215     17     94     12    91%   28-29, 51, 84, 163, 169->183, 196-198, 322, 337-338, 374, 451, 481, 489-491, 504
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8692   1705   3590    387    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 78.06%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [1] tests/unit/inference/test_ensemble.py:32: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [1] tests/unit/inference/test_export.py:8: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1639 passed, 12 skipped, 264 warnings in 1428.73s (0:23:48) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins8037150043599035524.sh
</pre></details>
<details><summary>Click to view CI Results</summary><pre>GitHub pull request #1318 of commit 2cee1fc602754eafd28cd1911948774d92fa0e66, no merge conflicts.
Running as SYSTEM
Setting status of 2cee1fc602754eafd28cd1911948774d92fa0e66 to PENDING with url http://10.20.13.93:8080/job/nvtabular_tests/4064/ and message: 'Pending'
Using context: Jenkins Unit Test Run
Building on master in workspace /var/jenkins_home/workspace/nvtabular_tests
using credential nvidia-merlin-bot
Cloning the remote Git repository
Cloning repository https://github.com/NVIDIA-Merlin/NVTabular.git
 > git init /var/jenkins_home/workspace/nvtabular_tests/nvtabular # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
 > git --version # timeout=10
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git config remote.origin.url https://github.com/NVIDIA-Merlin/NVTabular.git # timeout=10
Fetching upstream changes from https://github.com/NVIDIA-Merlin/NVTabular.git
using GIT_ASKPASS to set credentials This is the bot credentials for our CI/CD
 > git fetch --tags --force --progress -- https://github.com/NVIDIA-Merlin/NVTabular.git +refs/pull/1318/*:refs/remotes/origin/pr/1318/* # timeout=10
 > git rev-parse 2cee1fc602754eafd28cd1911948774d92fa0e66^{commit} # timeout=10
Checking out Revision 2cee1fc602754eafd28cd1911948774d92fa0e66 (detached)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 2cee1fc602754eafd28cd1911948774d92fa0e66 # timeout=10
Commit message: "Update examples/multi-gpu-toy-example/multi-gpu_dask.ipynb"
 > git rev-list --no-walk 837948fde53f7cefe41d81945629320d4afa0b08 # timeout=10
[nvtabular_tests] $ /bin/bash /tmp/jenkins7703482639675729380.sh
Installing NVTabular
Looking in indexes: https://pypi.org/simple, https://pypi.ngc.nvidia.com
Requirement already satisfied: pip in /var/jenkins_home/.local/lib/python3.8/site-packages (21.3.1)
Requirement already satisfied: setuptools in /var/jenkins_home/.local/lib/python3.8/site-packages (59.4.0)
Collecting setuptools
  Downloading setuptools-60.5.0-py3-none-any.whl (958 kB)
Requirement already satisfied: wheel in /var/jenkins_home/.local/lib/python3.8/site-packages (0.37.1)
Requirement already satisfied: pybind11 in /var/jenkins_home/.local/lib/python3.8/site-packages (2.9.0)
Requirement already satisfied: numpy==1.20.3 in /var/jenkins_home/.local/lib/python3.8/site-packages (1.20.3)
Found existing installation: nvtabular 0.8.0+24.gd534733
Can't uninstall 'nvtabular'. No files were found to uninstall.
running develop
running egg_info
creating nvtabular.egg-info
writing nvtabular.egg-info/PKG-INFO
writing dependency_links to nvtabular.egg-info/dependency_links.txt
writing requirements to nvtabular.egg-info/requires.txt
writing top-level names to nvtabular.egg-info/top_level.txt
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/easy_install.py:156: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
/var/jenkins_home/.local/lib/python3.8/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
warning: no files found matching '*.h' under directory 'cpp'
warning: no files found matching '*.cu' under directory 'cpp'
warning: no files found matching '*.cuh' under directory 'cpp'
adding license file 'LICENSE'
writing manifest file 'nvtabular.egg-info/SOURCES.txt'
running build_ext
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.8 -c flagcheck.cpp -o flagcheck.o -std=c++17
building 'nvtabular_cpp' extension
creating build
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/cpp
creating build/temp.linux-x86_64-3.8/cpp/nvtabular
creating build/temp.linux-x86_64-3.8/cpp/nvtabular/inference
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+19.g2cee1fc -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+19.g2cee1fc -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/__init__.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+19.g2cee1fc -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/categorify.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o -std=c++17 -fvisibility=hidden -g0
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DVERSION_INFO=0.9.0+19.g2cee1fc -I./cpp/ -I/var/jenkins_home/.local/lib/python3.8/site-packages/pybind11/include -I/usr/include/python3.8 -c cpp/nvtabular/inference/fill.cc -o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -std=c++17 -fvisibility=hidden -g0
creating build/lib.linux-x86_64-3.8
x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 build/temp.linux-x86_64-3.8/cpp/nvtabular/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/__init__.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/categorify.o build/temp.linux-x86_64-3.8/cpp/nvtabular/inference/fill.o -o build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so
copying build/lib.linux-x86_64-3.8/nvtabular_cpp.cpython-38-x86_64-linux-gnu.so -> 
Generating nvtabular/inference/triton/model_config_pb2.py from nvtabular/inference/triton/model_config.proto
Creating /var/jenkins_home/.local/lib/python3.8/site-packages/nvtabular.egg-link (link to .)
nvtabular 0.9.0+19.g2cee1fc is already the active version in easy-install.pth

Installed /var/jenkins_home/workspace/nvtabular_tests/nvtabular
Running black --check
All done! ✨ 🍰 ✨
176 files would be left unchanged.
Running flake8
Running isort
Skipped 2 files
Running bandit
Running pylint
************* Module nvtabular.dispatch
nvtabular/dispatch.py:607:11: I1101: Module 'numpy.random.mtrand' has no 'RandomState' member, but source is unavailable. Consider adding this module to extension-pkg-allow-list if you want to perform analysis based on run-time introspection of living objects. (c-extension-no-member)

--------------------------------------------------------------------
Your code has been rated at 10.00/10 (previous run: 10.00/10, +0.00)

Running flake8-nb
Building docs
make: Entering directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.8) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
/usr/local/lib/python3.8/dist-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document
  warn("Container node skipped: type={0}".format(mdnode.t))
make: Leaving directory '/var/jenkins_home/workspace/nvtabular_tests/nvtabular/docs'
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /var/jenkins_home/workspace/nvtabular_tests/nvtabular, configfile: pyproject.toml
plugins: xdist-2.5.0, anyio-3.4.0, forked-1.4.0, cov-3.0.0
collected 1648 items / 3 skipped / 1645 selected

tests/unit/test_dask_nvt.py ............................................ [  2%]
.......................................................................  [  6%]
tests/unit/test_io.py .................................................. [ 10%]
........................................................................ [ 14%]
..................ssssssss.............................................. [ 18%]
.........                                                                [ 19%]
tests/unit/test_notebooks.py ......                                      [ 19%]
tests/unit/test_tf4rec.py .                                              [ 19%]
tests/unit/test_tools.py ......................                          [ 21%]
tests/unit/test_triton_inference.py ................................     [ 22%]
tests/unit/framework_utils/test_tf_feature_columns.py .                  [ 23%]
tests/unit/framework_utils/test_tf_layers.py ........................... [ 24%]
...................................................                      [ 27%]
tests/unit/framework_utils/test_torch_layers.py .                        [ 27%]
tests/unit/graph/test_base_operator.py ....                              [ 28%]
tests/unit/graph/test_column_schemas.py ................................ [ 30%]
..................................................                       [ 33%]
tests/unit/graph/test_column_selector.py .....................           [ 34%]
tests/unit/graph/test_tags.py ......                                     [ 34%]
tests/unit/graph/ops/test_selection.py ...                               [ 34%]
tests/unit/inference/test_graph.py .                                     [ 34%]
tests/unit/inference/test_inference_ops.py ..                            [ 35%]
tests/unit/inference/test_op_runner.py ...                               [ 35%]
tests/unit/inference/test_tensorflow_inf_op.py ...                       [ 35%]
tests/unit/loader/test_dataloader_backend.py ......                      [ 35%]
tests/unit/loader/test_tf_dataloader.py ................................ [ 37%]
........................................s..                              [ 40%]
tests/unit/loader/test_torch_dataloader.py ............................. [ 42%]
........................................................                 [ 45%]
tests/unit/ops/test_categorify.py ...................................... [ 47%]
........................................................................ [ 52%]
...............................                                          [ 54%]
tests/unit/ops/test_column_similarity.py ........................        [ 55%]
tests/unit/ops/test_fill.py ............................................ [ 58%]
........                                                                 [ 58%]
tests/unit/ops/test_groupyby.py .......                                  [ 59%]
tests/unit/ops/test_hash_bucket.py .........................             [ 60%]
tests/unit/ops/test_join.py ............................................ [ 63%]
........................................................................ [ 67%]
..................................                                       [ 69%]
tests/unit/ops/test_lambda.py ..........                                 [ 70%]
tests/unit/ops/test_normalize.py ....................................... [ 72%]
..                                                                       [ 72%]
tests/unit/ops/test_ops.py ............................................. [ 75%]
....................                                                     [ 76%]
tests/unit/ops/test_ops_schema.py ...................................... [ 79%]
........................................................................ [ 83%]
........................................................................ [ 87%]
.......................................                                  [ 90%]
tests/unit/ops/test_target_encode.py .....................               [ 91%]
tests/unit/workflow/test_cpu_workflow.py ......                          [ 91%]
tests/unit/workflow/test_workflow.py ................................... [ 93%]
.........................................................                [ 97%]
tests/unit/workflow/test_workflow_chaining.py ...                        [ 97%]
tests/unit/workflow/test_workflow_node.py ...........                    [ 98%]
tests/unit/workflow/test_workflow_ops.py ...                             [ 98%]
tests/unit/workflow/test_workflow_schemas.py ..........................  [100%]

=============================== warnings summary ===============================
tests/unit/test_dask_nvt.py: 12 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 8 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 6 files did not have enough
  partitions to create 7 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 9 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 8 files did not have enough
  partitions to create 11 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 13 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 14 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 15 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 16 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 17 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 18 files.
    warnings.warn(

tests/unit/test_io.py::test_io_partitions_push
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 12 files did not have enough
  partitions to create 19 files.
    warnings.warn(

tests/unit/test_io.py: 96 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/__init__.py:38: DeprecationWarning: ColumnGroup is deprecated, use ColumnSelector instead
    warnings.warn("ColumnGroup is deprecated, use ColumnSelector instead", DeprecationWarning)

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_workflow.py: 48 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 20 files.
    warnings.warn(

tests/unit/test_io.py: 12 warnings
tests/unit/workflow/test_cpu_workflow.py: 6 warnings
tests/unit/workflow/test_workflow.py: 12 warnings
tests/unit/workflow/test_workflow_schemas.py: 1 warning
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 10 files.
    warnings.warn(

tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-Shuffle.PER_WORKER-5-2-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-0-csv]
tests/unit/test_io.py::test_multifile_parquet[False-None-5-2-csv]
tests/unit/loader/test_torch_dataloader.py::test_horovod_multigpu
tests/unit/loader/test_torch_dataloader.py::test_distributed_multigpu
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 5 files.
    warnings.warn(

tests/unit/test_io.py::test_to_parquet_output_files[Shuffle.PER_WORKER-4-6]
tests/unit/test_io.py::test_to_parquet_output_files[False-4-6]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 6 files.
    warnings.warn(

tests/unit/test_io.py: 6 warnings
tests/unit/loader/test_tf_dataloader.py: 2 warnings
tests/unit/loader/test_torch_dataloader.py: 12 warnings
tests/unit/workflow/test_workflow.py: 9 warnings
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 1 files did not have enough
  partitions to create 2 files.
    warnings.warn(

tests/unit/test_io.py::test_validate_and_regenerate_dataset
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/parquet.py:519: DeprecationWarning: 'ParquetDataset.pieces' attribute is deprecated as of pyarrow 5.0.0 and will be removed in a future version. Specify 'use_legacy_dataset=False' while constructing the ParquetDataset, and then use the '.fragments' attribute instead.
    paths = [p.path for p in pa_dataset.pieces]

tests/unit/ops/test_fill.py::test_fill_missing[True-True-parquet]
tests/unit/ops/test_fill.py::test_fill_missing[True-False-parquet]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
  /usr/local/lib/python3.8/dist-packages/pandas/core/indexing.py:1732: SettingWithCopyWarning: 
  A value is trying to be set on a copy of a slice from a DataFrame
  
  See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
    self._setitem_single_block(indexer, value, name)

tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-True]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
tests/unit/ops/test_ops.py::test_filter[parquet-0.1-False]
  /usr/local/lib/python3.8/dist-packages/dask/dataframe/core.py:6871: UserWarning: Insufficient elements for `head`. 1 elements requested, only 0 elements available. Try passing larger `npartitions` to `head`.
    warnings.warn(msg.format(n, len(r)))

tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_parquet_output[True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[True-True-None]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_WORKER]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-Shuffle.PER_PARTITION]
tests/unit/workflow/test_workflow.py::test_workflow_apply[False-True-None]
  /var/jenkins_home/workspace/nvtabular_tests/nvtabular/nvtabular/io/dataset.py:861: UserWarning: Only created 2 files did not have enough
  partitions to create 4 files.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/warnings.html

---------- coverage: platform linux, python 3.8.10-final-0 -----------
Name                                                           Stmts   Miss Branch BrPart  Cover   Missing
----------------------------------------------------------------------------------------------------------
examples/multi-gpu-movielens/torch_trainer.py                     65      0      6      1    99%   32->36
examples/multi-gpu-movielens/torch_trainer_dist.py                63      0      2      0   100%
nvtabular/__init__.py                                             18      0      0      0   100%
nvtabular/dispatch.py                                            341     78    166     28    76%   37-39, 42-46, 51-53, 59-69, 76-77, 118-120, 128-130, 135-138, 142-147, 154, 173, 184, 190, 195->197, 208, 231-234, 265->267, 278-280, 286, 311, 318, 349->354, 352, 355, 358->362, 397, 408-411, 416, 438, 445-448, 478, 482, 523, 547, 549, 556, 571-585, 600, 607
nvtabular/framework_utils/__init__.py                              0      0      0      0   100%
nvtabular/framework_utils/tensorflow/__init__.py                   1      0      0      0   100%
nvtabular/framework_utils/tensorflow/feature_column_utils.py     134     78     90     15    39%   30, 99, 103, 114-130, 140, 143-158, 162, 166-167, 173-198, 207-217, 220-227, 229->233, 234, 239-279, 282
nvtabular/framework_utils/tensorflow/layers/__init__.py            4      0      0      0   100%
nvtabular/framework_utils/tensorflow/layers/embedding.py         153     12     89      6    91%   60, 68->49, 122, 179, 231-239, 335->343, 357->360, 363-364, 367
nvtabular/framework_utils/tensorflow/layers/interaction.py        47     25     22      1    45%   49, 74-103, 106-110, 113
nvtabular/framework_utils/tensorflow/layers/outer_product.py      30     24     12      0    19%   37-38, 41-60, 71-84, 87
nvtabular/framework_utils/tensorflow/tfrecords_to_parquet.py      58     58     30      0     0%   16-111
nvtabular/framework_utils/torch/__init__.py                        0      0      0      0   100%
nvtabular/framework_utils/torch/layers/__init__.py                 2      0      0      0   100%
nvtabular/framework_utils/torch/layers/embeddings.py              32      2     18      2    92%   50, 91
nvtabular/framework_utils/torch/models.py                         45      1     30      4    93%   57->61, 87->89, 93->96, 103
nvtabular/framework_utils/torch/utils.py                          75      5     34      5    91%   51->53, 64, 71->76, 75, 118-120
nvtabular/graph/__init__.py                                        4      0      0      0   100%
nvtabular/graph/base_operator.py                                 111      2     38      4    95%   151->157, 170->176, 181->185, 250, 254
nvtabular/graph/graph.py                                          57      9     32      1    82%   39, 100-102, 106-111
nvtabular/graph/node.py                                          285     53    154     20    77%   49, 73-81, 140, 208->211, 228->231, 239-240, 287, 305, 320-325, 330, 332, 338, 352, 362-373, 378->381, 392-400, 409, 410->405, 424-425, 433, 434->417, 440-443, 447, 474, 481-486, 509
nvtabular/graph/ops/__init__.py                                    5      0      0      0   100%
nvtabular/graph/ops/concat_columns.py                             18      0      2      0   100%
nvtabular/graph/ops/identity.py                                    6      1      2      0    88%   41
nvtabular/graph/ops/selection.py                                  20      0      2      0   100%
nvtabular/graph/ops/subset_columns.py                             15      1      2      0    94%   60
nvtabular/graph/ops/subtraction.py                                21      2      4      0    92%   54-55
nvtabular/graph/schema.py                                        128      8     63      6    93%   39, 63, 169, 174->exit, 178, 191, 198, 223, 226
nvtabular/graph/schema_io/__init__.py                              0      0      0      0   100%
nvtabular/graph/schema_io/schema_writer_base.py                    8      0      2      0   100%
nvtabular/graph/schema_io/schema_writer_pbtxt.py                 126     11     58     10    88%   57-62, 67->74, 70->72, 81, 98->103, 101->103, 124->139, 130-133, 175->191, 183, 187
nvtabular/graph/selector.py                                       88      1     48      1    99%   158
nvtabular/graph/tags.py                                           59      0     22      0   100%
nvtabular/inference/__init__.py                                    0      0      0      0   100%
nvtabular/inference/graph/__init__.py                              3      0      0      0   100%
nvtabular/inference/graph/ensemble.py                             57     42     26      0    20%   39-103, 107-118
nvtabular/inference/graph/graph.py                                27      4     14      2    80%   42, 50-57
nvtabular/inference/graph/node.py                                 15      9      4      0    42%   22-23, 26-27, 31-36
nvtabular/inference/graph/op_runner.py                            21      0      8      0   100%
nvtabular/inference/graph/ops/__init__.py                          0      0      0      0   100%
nvtabular/inference/graph/ops/operator.py                         32      6     12      1    80%   13-14, 19, 36, 40, 49
nvtabular/inference/graph/ops/tensorflow.py                       50     18     16      2    64%   34-47, 79-83, 92-95
nvtabular/inference/graph/ops/workflow.py                         30      1      4      1    94%   51
nvtabular/inference/triton/__init__.py                            36     12     14      1    58%   42-49, 68, 72, 76-82
nvtabular/inference/triton/benchmarking_tools.py                  52     52     10      0     0%   2-103
nvtabular/inference/triton/data_conversions.py                    87      3     58      4    95%   32-33, 84
nvtabular/inference/triton/ensemble.py                           281    148     96      7    49%   157-193, 237-285, 302-306, 378-386, 415-431, 483-493, 542-582, 588-604, 608-675, 701-702, 734, 756, 762-781, 787-811, 818
nvtabular/inference/triton/model/__init__.py                       0      0      0      0   100%
nvtabular/inference/triton/model/model_pt.py                     101    101     42      0     0%   27-220
nvtabular/inference/triton/model_config_pb2.py                   299      0      2      0   100%
nvtabular/inference/triton/workflow_model.py                      52     52     22      0     0%   27-124
nvtabular/inference/workflow/__init__.py                           0      0      0      0   100%
nvtabular/inference/workflow/base.py                             114    114     62      0     0%   27-210
nvtabular/inference/workflow/hugectr.py                           37     37     16      0     0%   27-87
nvtabular/inference/workflow/pytorch.py                           10     10      6      0     0%   27-46
nvtabular/inference/workflow/tensorflow.py                        32     32     10      0     0%   26-68
nvtabular/io/__init__.py                                           5      0      0      0   100%
nvtabular/io/avro.py                                              88     88     32      0     0%   16-189
nvtabular/io/csv.py                                               57      6     22      5    86%   22-23, 99, 103->107, 108, 110, 124
nvtabular/io/dask.py                                             181      8     72     11    92%   110, 113, 149, 389, 399, 416->419, 427, 431->433, 433->429, 438, 440
nvtabular/io/dataframe_engine.py                                  61      5     30      6    88%   19-20, 50, 69, 88->92, 92->97, 94->97, 97->116, 125
nvtabular/io/dataframe_iter.py                                    21      1     14      1    94%   42
nvtabular/io/dataset.py                                          346     44    168     28    85%   48-49, 234, 271, 273, 286, 311-325, 449->522, 454-457, 462->472, 479->477, 480->484, 497->501, 512, 573-574, 575->579, 627, 755, 757, 759, 765, 769-771, 773, 833-834, 868, 875-876, 882, 888, 984-985, 1102-1107, 1113, 1125-1126
nvtabular/io/dataset_engine.py                                    31      1      6      0    97%   48
nvtabular/io/fsspec_utils.py                                     115    101     64      0     8%   26-27, 42-98, 103-114, 151-198, 220-270, 275-291, 295-297, 311-322
nvtabular/io/hugectr.py                                           45      2     26      2    92%   34, 74->97, 101
nvtabular/io/parquet.py                                          591     35    218     34    91%   35-36, 59, 81->161, 93, 106, 120->128, 131, 145->exit, 181, 210-211, 228->253, 239->253, 290-298, 318, 324, 342->344, 358, 376->386, 379, 384-385, 428->440, 432, 554-559, 597-602, 718->725, 786->791, 792-793, 913, 917, 921, 927, 959, 976, 980, 987->989, 1097->exit, 1101->1098, 1108->1113, 1118->1128, 1133, 1155, 1182
nvtabular/io/shuffle.py                                           31      7     18      4    73%   42, 44-45, 49, 62-64
nvtabular/io/writer.py                                           184     13     78      5    92%   24-25, 51, 79, 125, 128, 212, 221, 224, 267, 299-301
nvtabular/io/writer_factory.py                                    18      2      8      2    85%   35, 60
nvtabular/loader/__init__.py                                       0      0      0      0   100%
nvtabular/loader/backend.py                                      372     16    154     11    95%   27-28, 159-160, 300->302, 312-316, 363-364, 403->407, 404->403, 479, 483-484, 513, 589-590, 625, 633
nvtabular/loader/tensorflow.py                                   168     20     58      7    88%   66, 83, 97, 311, 339, 350, 365-367, 396-398, 408-416, 419-422
nvtabular/loader/tf_utils.py                                      57     10     22      6    80%   32->35, 35->37, 42->44, 46, 47->68, 53-54, 62-64, 70-74
nvtabular/loader/torch.py                                         87     14     26      3    80%   28-30, 33-39, 114, 158-159, 164
nvtabular/ops/__init__.py                                         23      0      0      0   100%
nvtabular/ops/add_metadata.py                                     15      0      2      0   100%
nvtabular/ops/bucketize.py                                        40      9     20      3    73%   52-54, 58->exit, 61-64, 83-86
nvtabular/ops/categorify.py                                      658     70    350     48    86%   252, 254, 272, 276, 284, 292, 294, 321, 342-343, 390->394, 398-405, 451, 459, 482-483, 560-565, 636, 732, 749, 794, 872-873, 888-892, 893->857, 911, 919, 926->exit, 950, 953->956, 1005->1003, 1065, 1070, 1091->1095, 1097->1052, 1103-1106, 1118, 1122, 1126, 1133, 1138-1141, 1219, 1221, 1291->1314, 1297->1314, 1315-1320, 1365, 1378->1381, 1385->1390, 1389, 1395, 1398, 1406-1416
nvtabular/ops/clip.py                                             18      2      8      3    81%   44, 52->54, 55
nvtabular/ops/column_similarity.py                               122     26     38      5    74%   19-20, 29-30, 82->exit, 112, 207-208, 217-219, 227-243, 260->263, 264, 274
nvtabular/ops/data_stats.py                                       56      1     24      3    95%   91->93, 95, 97->87
nvtabular/ops/difference_lag.py                                   42      0     14      1    98%   73->75
nvtabular/ops/dropna.py                                            8      0      2      0   100%
nvtabular/ops/fill.py                                             76      5     30      1    92%   63-67, 109
nvtabular/ops/filter.py                                           20      1      8      1    93%   49
nvtabular/ops/groupby.py                                         127      4     84      6    95%   72, 83, 93->95, 104->109, 131, 216
nvtabular/ops/hash_bucket.py                                      43      1     22      2    95%   73, 112->118
nvtabular/ops/hashed_cross.py                                     38      3     17      3    89%   52, 65, 93
nvtabular/ops/join_external.py                                    96      8     34      7    88%   20-21, 114, 116, 118, 150->152, 205-206, 216->227, 221
nvtabular/ops/join_groupby.py                                    127      5     57      6    94%   113, 120, 129, 136->135, 178->175, 181->175, 259-260
nvtabular/ops/lambdaop.py                                         61      6     22      6    86%   59, 63, 81, 93, 98, 107
nvtabular/ops/list_slice.py                                       89     29     42      0    64%   21-22, 146-160, 168-190
nvtabular/ops/logop.py                                            21      0      6      0   100%
nvtabular/ops/moments.py                                          69      0     24      0   100%
nvtabular/ops/normalize.py                                        93      4     22      1    94%   89, 139-140, 167
nvtabular/ops/operator.py                                         12      1      2      0    93%   53
nvtabular/ops/rename.py                                           29      3     14      3    86%   45, 70-72
nvtabular/ops/stat_operator.py                                     8      0      2      0   100%
nvtabular/ops/target_encoding.py                                 182      9     76      5    93%   169->173, 177->186, 274, 283-284, 297-303, 396->399
nvtabular/ops/value_counts.py                                     34      0      6      1    98%   40->38
nvtabular/tools/__init__.py                                        0      0      0      0   100%
nvtabular/tools/data_gen.py                                      251     12     86      6    95%   25-26, 124-127, 137-139, 161-162, 313, 323, 349
nvtabular/tools/dataset_inspector.py                              52      8     24      2    79%   33-40, 51
nvtabular/tools/inspector_script.py                               46     46      0      0     0%   17-168
nvtabular/utils.py                                               119     45     52      8    57%   34-35, 39-40, 53, 64-65, 67-69, 72, 75, 81, 87, 93-129, 148, 152->156, 166-174
nvtabular/worker.py                                               80      5     38      7    90%   24-25, 81->97, 89, 90->97, 97->100, 106, 108, 109->111
nvtabular/workflow/__init__.py                                     2      0      0      0   100%
nvtabular/workflow/node.py                                         7      0      4      0   100%
nvtabular/workflow/workflow.py                                   215     17     94     12    91%   28-29, 51, 84, 163, 169->183, 196-198, 322, 337-338, 374, 451, 481, 489-491, 504
----------------------------------------------------------------------------------------------------------
TOTAL                                                           8692   1705   3590    387    78%
Coverage XML written to file coverage.xml

Required test coverage of 70% reached. Total coverage: 78.06%
=========================== short test summary info ============================
SKIPPED [1] ../../../../../usr/local/lib/python3.8/dist-packages/dask_cudf/io/tests/test_s3.py:16: could not import 's3fs': No module named 's3fs'
SKIPPED [1] tests/unit/inference/test_ensemble.py:32: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [1] tests/unit/inference/test_export.py:8: could not import 'nvtabular.loader.tf_utils.configure_tensorflow': No module named 'nvtabular.loader.tf_utils.configure_tensorflow'; 'nvtabular.loader.tf_utils' is not a package
SKIPPED [8] tests/unit/test_io.py:604: could not import 'uavro': No module named 'uavro'
SKIPPED [1] tests/unit/loader/test_tf_dataloader.py:531: not working correctly in ci environment
========= 1639 passed, 12 skipped, 264 warnings in 1435.97s (0:23:55) ==========
Performing Post build task...
Match found for : : True
Logical operation result is TRUE
Running script  : #!/bin/bash
cd /var/jenkins_home/
CUDA_VISIBLE_DEVICES=1 python test_res_push.py "https://api.GitHub.com/repos/NVIDIA-Merlin/NVTabular/issues/$ghprbPullId/comments" "/var/jenkins_home/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log" 
[nvtabular_tests] $ /bin/bash /tmp/jenkins8732175022913356028.sh
</pre></details>

Fix patch:
diff --git a/nvtabular/__init__.py b/nvtabular/__init__.py
index d2366db5f0a..bf84463eae4 100644
--- a/nvtabular/__init__.py
+++ b/nvtabular/__init__.py
@@ -18,7 +18,7 @@
 from merlin.graph import ColumnSelector
 from merlin.schema import ColumnSchema, Schema
 
-from . import graph, io, workflow  # noqa
+from . import graph, io, utils, workflow  # noqa
 from ._version import get_versions
 
 # suppress some warnings with cudf warning about column ordering with dlpack
@@ -30,6 +30,8 @@
 WorkflowNode = workflow.WorkflowNode
 Workflow = workflow.Workflow
 Dataset = io.dataset.Dataset
+Distributed = utils.Distributed
+Serial = utils.Serial
 
 
 # Provides an alias of ColumnSelector so that old usages of ColumnGroup to
@@ -47,6 +49,8 @@ def ColumnGroup(columns):
     "ColumnSelector",
     "ColumnSchema",
     "Schema",
+    "Distributed",
+    "Serial",
 ]
 
 # cudf warns about column ordering with dlpack methods, ignore it


Test patch:
diff --git a/tests/unit/test_dask_nvt.py b/tests/unit/test_dask_nvt.py
index 68342eed652..2f4b2b66eb5 100644
--- a/tests/unit/test_dask_nvt.py
+++ b/tests/unit/test_dask_nvt.py
@@ -26,7 +26,7 @@
 
 from nvtabular import ColumnSelector, Dataset, Workflow, ops
 from nvtabular.io import Shuffle
-from nvtabular.utils import set_dask_client
+from nvtabular.utils import global_dask_client, set_dask_client
 from tests.conftest import allcols_csv, mycols_csv, mycols_pq
 
 cudf = pytest.importorskip("cudf")
@@ -295,3 +295,21 @@ def test_filtered_partition(tmpdir, cpu):
 
     # Write result to disk
     workflow.transform(dataset).to_parquet(str(tmpdir))
+
+
+def test_merlin_core_execution_managers(client):
+    # This functionality lives in merlin-core,
+    # but we are testing that we can import
+    # from NVTabular with proper behavior.
+    from nvtabular import Distributed, Serial
+
+    # Set distributed client
+    with Distributed(client=client):
+        assert global_dask_client() == client
+
+        # Check that the global dask client
+        # becomes None in a `with Serial()` block
+        with Serial():
+            assert global_dask_client() is None
+
+        assert global_dask_client() == client