code: def _walk(self, root, exclude_hidden=True, suffixes=None):
      if suffixes is None:
          suffixes = []
      root = to_unicode(
          root
      )  # handle files/folder with non ascii chars
      prefixlen = len("%s/" % os.path.dirname(root))
      for (
          path,
          files,
      ) in walk_without_cycles(root):
          if exclude_hidden and "/." in path:
              continue
          # path = path[2:] # strip the ./ prefix
          # if path and (path[0] == '.' or './' in path):
          #    continue
          for fname in files:
              if fname[0] == ".":
                  continue
              if any(fname.endswith(suffix) for suffix in suffixes):
                  p = os.path.join(path, fname)
                  yield p, p[prefixlen:]
  
imports: import importlib
  import os
  import sys
  import tarfile
  import time
  import json
  from io import BytesIO
  from .extension_support import EXT_PKG, package_mfext_all
  from .metaflow_config import DEFAULT_PACKAGE_SUFFIXES
  from .exception import MetaflowException
  from .util import to_unicode
  from .None import R, INFO_FILE
label_desc: Use image node_id 2 for calling the MetaflowPackage obj's underlying member method code with example usage: obj._walk(root, exclude_hidden, suffixes) without return types