<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def run(self, cell, is_full_fc=False, parse_fc=True):
 """Make supercell force constants readable for phonopy Note ---- Born effective charges and dielectric constant tensor are read from QE output file if they exist. But this means dipole-dipole contributions are removed from force constants and this force constants matrix is not usable in phonopy. Arguments --------- cell : PhonopyAtoms Primitive cell used for QE/PH calculation. is_full_fc : Bool, optional, default=False Whether to create full or compact force constants. parse_fc : Bool, optional, default=True Force constants file of QE is not parsed when this is False. False may be used when expected to parse only epsilon and born. """


        with open(self._filename) as f:
            fc_dct = self._parse_q2r(f)
            self.dimension = fc_dct['dimension']
            self.epsilon = fc_dct['dielectric']
            self.borns = fc_dct['born']
            if parse_fc:
                (self.fc,
                 self.primitive,
                 self.supercell) = self._arrange_supercell_fc(
                     cell, fc_dct['fc'], is_full_fc=is_full_fc)