class_docstr: Smart sdist that finds anything supported by revision control
class_docstr_tok: ["Smart","sdist","that","finds","anything","supported","by","revision","control"]
docstr: Extracting data_files from build_py is known to cause
  infinite recursion errors when `include_package_data`
  is enabled, so suppress it in that case.
docstr_tok: ["Extracting","data_files","from","build_py","is","known","to","cause","infinite","recursion","errors","when","`","include_package_data","`","is","enabled",",","so","suppress","it","in","that","case","."]
code: def _safe_data_files(self, build_py):
      """
      Extracting data_files from build_py is known to cause
      infinite recursion errors when `include_package_data`
      is enabled, so suppress it in that case.
      """
      if self.distribution.include_package_data:
          return ()
      return build_py.data_files
  
imports: from distutils import log
  import distutils.command.sdist
  import os
  import sys
  import io
  import contextlib
  from setuptools.extern import six, ordered_set
  from .py36compat import sdist_add_defaults
  import pkg_resources
label_desc: Use image node_id 9 for calling the sdist obj's underlying member method code with example usage: obj._safe_data_files(build_py) and returns: build_py, 