docs: def path_status(path, filename='', status=None, deep=False, verbosity=0):
      """ Retrieve the access, modify, and create timetags for a path along with its size
  
      Arguments:
          path (str): full path to the file or directory to be statused
          status (dict): optional existing status to be updated/overwritten with new status values
          try_open (bool): whether to try to open the file to get its encoding and openability
  
      Returns:
          dict: {'size': bytes (int), 'accessed': (datetime), 'modified': (datetime), 'changed_any': (datetime)}
  
      >>> stat = path_status(__file__)
      >>> stat['path'] == __file__
      True
      >>> 256000 > stat['size'] > 14373
      True
      >>> stat['type']
      'file'
      """
      status = {} if status is None else status
  
      path = expand_path(path)
      if filename:
          dir_path = path
      else:
          dir_path, filename = os.path.split(path)  # this will split off a dir as `filename` if path doesn't end in a /
      full_path = os.path.join(dir_path, filename)
      if verbosity > 1:
          print('stat: {}'.format(full_path))
      status['name'] = filename
      status['path'] = full_path
      status['dir'] = dir_path
      status['type'] = []
      try:
          status.update(get_stat(full_path))
      except OSError:
          status['type'] = ['nonexistent'] + status['type']
          logger.info("Unable to stat path '{}'".format(full_path))
      status['type'] = '->'.join(status['type'])
  
      return status