<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def build_binary_dist(self, requirement):
 """ Build a binary distribution archive from an unpacked source distribution. :param requirement: A :class:`.Requirement` object. :returns: The pathname of a binary distribution archive (a string). :raises: :exc:`.BinaryDistributionError` when the original command and the fall back both fail to produce a binary distribution archive. This method uses the following command to build binary distributions: .. code-block:: sh $ python setup.py bdist_dumb --format=tar This command can fail for two main reasons: 1. The package is missing binary dependencies. 2. The ``setup.py`` script doesn't (properly) implement ``bdist_dumb`` binary distribution format support. The first case is dealt with in :func:`get_binary_dist()`. To deal with the second case this method falls back to the following command: .. code-block:: sh $ python setup.py bdist This fall back is almost never needed, but there are Python packages out there which require this fall back (this method was added because the installation of ``Paver==1.2.3`` failed, see `issue 37`_ for details about that). .. _issue 37: https://github.com/paylogic/pip-accel/issues/37 """

        try:
            return self.build_binary_dist_helper(requirement, ['bdist_dumb', '--format=tar'])
        except (BuildFailed, NoBuildOutput):
            logger.warning("Build of %s failed, falling back to alternative method ..", requirement)
            return self.build_binary_dist_helper(requirement, ['bdist', '--formats=gztar'])