class_docstr: Smart sdist that finds anything supported by revision control
class_docstr_tok: ["Smart","sdist","that","finds","anything","supported","by","revision","control"]
docstr: Since the ``sdist`` class is also used to compute the MANIFEST
  (via :obj:`setuptools.command.egg_info.manifest_maker`),
  there might be recursion problems when trying to obtain the list of
  data_files and ``include_package_data=True`` (which in turn depends on
  the files included in the MANIFEST).
  
  To avoid that, ``manifest_maker`` should be able to overwrite this
  method and avoid recursive attempts to build/analyze the MANIFEST.
docstr_tok: ["Since","the","``","sdist","``","class","is","also","used","to","compute","the","MANIFEST","(","via",":","obj",":","`","setuptools.command.egg_info.manifest_maker","`",")",",","there","might","be","recursion","problems","when","trying","to","obtain","the","list","of","data_files","and","``","include_package_data=True","``","(","which","in","turn","depends","on","the","files","included","in","the","MANIFEST",")",".","To","avoid","that",",","``","manifest_maker","``","should","be","able","to","overwrite","this","method","and","avoid","recursive","attempts","to","build\/analyze","the","MANIFEST","."]
code: def _safe_data_files(self, build_py):
      """
      Since the ``sdist`` class is also used to compute the MANIFEST
      (via :obj:`setuptools.command.egg_info.manifest_maker`),
      there might be recursion problems when trying to obtain the list of
      data_files and ``include_package_data=True`` (which in turn depends on
      the files included in the MANIFEST).
  
      To avoid that, ``manifest_maker`` should be able to overwrite this
      method and avoid recursive attempts to build/analyze the MANIFEST.
      """
      return build_py.data_files
  
imports: from distutils import log
  import distutils.command.sdist
  import os
  import sys
  import contextlib
  from itertools import chain
  from .._importlib import metadata
  from .build import _ORIGINAL_SUBCOMMANDS
label_desc: Use image node_id 10 for calling the sdist obj's underlying member method code with example usage: obj._safe_data_files(build_py) and returns: build_py