docs: def _args2_fpath(dpath, fname, cfgstr, ext):
      r"""
      Ensures that the filename is not too long
  
      Internal util_cache helper function
      Windows MAX_PATH=260 characters
      Absolute length is limited to 32,000 characters
      Each filename component is limited to 255 characters
  
      Args:
          dpath (str):
          fname (str):
          cfgstr (str):
          ext (str):
  
      Returns:
          str: fpath
  
      CommandLine:
          python -m utool.util_cache --test-_args2_fpath
  
      Example:
          >>> # ENABLE_DOCTEST
          >>> from utool.util_cache import *  # NOQA
          >>> from utool.util_cache import _args2_fpath
          >>> import utool as ut
          >>> dpath = 'F:\\data\\work\\PZ_MTEST\\_ibsdb\\_ibeis_cache'
          >>> fname = 'normalizer_'
          >>> cfgstr = u'PZ_MTEST_DSUUIDS((9)67j%dr%&bl%4oh4+)_QSUUIDS((9)67j%dr%&bl%4oh4+)zebra_plains_vsone_NN(single,K1+1,last,cks1024)_FILT(ratio<0.625;1.0,fg;1.0)_SV(0.01;2;1.57minIn=4,nRR=50,nsum,)_AGG(nsum)_FLANN(4_kdtrees)_FEATWEIGHT(ON,uselabel,rf)_FEAT(hesaff+sift_)_CHIP(sz450)'
          >>> ext = '.cPkl'
          >>> fpath = _args2_fpath(dpath, fname, cfgstr, ext)
          >>> result = str(ut.ensure_unixslash(fpath))
          >>> target = 'F:/data/work/PZ_MTEST/_ibsdb/_ibeis_cache/normalizer_xfylfboirymmcpfg.cPkl'
          >>> ut.assert_eq(result, target)
  
      """
      if len(ext) > 0 and ext[0] != '.':
          raise ValueError('Please be explicit and use a dot in ext')
      max_len = 128
      # should hashlen be larger?
      cfgstr_hashlen = 16
      prefix = fname
      fname_cfgstr = consensed_cfgstr(prefix, cfgstr, max_len=max_len,
                                      cfgstr_hashlen=cfgstr_hashlen)
      fpath = join(dpath, fname_cfgstr + ext)
      fpath = normpath(fpath)
      return fpath