<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def max_min_l1(self, reaction, weights={}):
 """Maximize flux of reaction then minimize the L1 norm. During minimization the given reaction will be fixed at the maximum obtained from the first solution. If reaction is a dictionary object, each entry is interpreted as a weight on the objective for that reaction (non-existent reaction will have zero weight). """


        self.maximize(reaction)

        if isinstance(reaction, dict):
            reactions = list(reaction)
        else:
            reactions = [reaction]

        # Save flux values before modifying the LP problem
        fluxes = {r: self.get_flux(r) for r in reactions}

        # Add constraints on the maximized reactions
        for r in reactions:
            flux_var = self.get_flux_var(r)
            c, = self._prob.add_linear_constraints(flux_var == fluxes[r])
            self._temp_constr.append(c)

        self.minimize_l1(weights)