<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_min_muO2(self, min_voltage=None, max_voltage=None):
 """ Minimum critical oxygen chemical potential along path. Args: min_voltage: The minimum allowable voltage for a given step max_voltage: The maximum allowable voltage allowable for a given step Returns: Minimum critical oxygen chemical of all compounds along the insertion path (a subset of the path can be chosen by the optional arguments). """

        data = []
        for pair in self._select_in_voltage_range(min_voltage, max_voltage):
            if pair.muO2_discharge is not None:
                data.extend([d['chempot'] for d in pair.muO2_discharge])
            if pair.muO2_charge is not None:
                data.extend([d['chempot'] for d in pair.muO2_discharge])
        return min(data) if len(data) > 0 else None