docs: def setenv(item, timefmt):
      '''Set environment, based on item.  Usually done in a baby fork'''
      for env, att in (( 'FSQ_ITEM_PID', 'pid', ),
                       ( 'FSQ_ITEM_ENTROPY', 'entropy', ),
                       ( 'FSQ_ITEM_HOSTNAME', 'hostname', ),
                       ( 'FSQ_ITEM_HOST', 'host', ),
                       ( 'FSQ_ITEM_ID', 'id', ), ):
          try:
              os.putenv(env, getattr(item,
                        att).encode(_CHARSET))
          except UnicodeEncodeError:
              shout('cannot coerce item {0};'
                    ' charset={1}'.format(att, _CHARSET))
              return -1
          except AttributeError:
              if att != 'host':
                  raise
  
      # format tries and date to env
      os.putenv('FSQ_ITEM_TRIES', str(item.tries))
      try:
          os.putenv('FSQ_ITEM_ENQUEUED_AT',
                    item.enqueued_at.strftime(timefmt))
      except ValueError:
          shout('invalid timefmt: {0}'.format(timefmt))
          return -1
      return 0