<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def binaryorbit(orbit, comp1, comp2, envelope=None):
 """ Build the string representation of a hierarchy containing a binary orbit with 2 components. Generally, this will be used as an input to the kind argument in :meth:`phoebe.frontend.bundle.Bundle.set_hierarchy` :parameter comp1: an existing hierarchy string, Parameter, or ParameterSet :parameter comp2: an existing hierarchy string, Parameter, or ParameterSet :return: the string representation of the hierarchy """


    if envelope:
        return '{}({}, {}, {})'.format(_to_component(orbit, False), _to_component(comp1), _to_component(comp2), _to_component(envelope, False))
    else:
        return '{}({}, {})'.format(_to_component(orbit, False), _to_component(comp1), _to_component(comp2))