import warnings


class ATOM(object):

    def setATOM_BFACTOR_WILSON(self):
        warnings.warn( "Deprecated function: use setATOM_CHANGE_BFAC", DeprecationWarning )  
        self.setATOM_CHANGE_BFAC( true )

    def setATOM_PDB_SCAT(self,x,w,e):
        warnings.warn( "Deprecated function: use setATOM_CHANGE_SCAT", DeprecationWarning )  
        self.setATOM_CHANGE_SCAT( true )
        self.setATOM_SCAT( e )

class COMP(object):

    def addPROT(self, mw, num):
        warnings.warn( "Deprecated function: use addCOMP_PROT_MW_NUM", DeprecationWarning )  
        self.addCOMP_PROT_MW_NUM( mw, num )

    def addNUCL(self, mw, num):
        warnings.warn( "Deprecated function: use addCOMP_NUCL_MW_NUM", DeprecationWarning )
        self.addCOMP_NUCL_MW_NUM( mw, num )

    def addPROT_SEQ(self, seq, num):
        warnings.warn( "Deprecated function: use addCOMP_PROT_SEQ_NUM", DeprecationWarning )
        self.addCOMP_PROT_SEQ_NUM( seq, num )
    
    def addNUCL_SEQ(self, seq, num):
        warnings.warn( "Deprecated function: use addCOMP_NUCL_SEQ_NUM", DeprecationWarning )  
        self.addCOMP_NUCL_SEQ_NUM( seq, num )


class CRYS(object):
    
    def setCRYS_MILLER(self, m):
        warnings.warn( "Deprecated function: use setCRYS_SAD_DATA", DeprecationWarning )
        self.setCRYS_MILLER(m)

    def addCRYS_ANOM_DATA(self, x,w,a,b,c,d,e,f):
        warnings.warn( "Deprecated function: use setCRYS_SAD_DATA", DeprecationWarning )
        self.setCRYS_ANOM_DATA(a,b,c,d,e,f)

class EIGE(object):
    
    def setREAD_EIGENFILE(self, eigenfile):
        warnings.warn( "Deprecated function: use setEIGE_READ", DeprecationWarning )
        self.setEIGE_READ(modlid, frac)

    def setWRITE_EIGENFILE(self, eigenfile):
        warnings.warn( "Deprecated function: use setEIGE_WRITE", DeprecationWarning )
        self.setEIGE_WRITE( modlid, frac )


class ENSE(object):

    def addPDB(self, modlid, pdbfile, homology_as_rms, rms_identity):
        warnings.warn( "Deprecated function: use addENSE_PDB_RMS or addENSE_PDB_ID", DeprecationWarning )
        if homology_as_rms:
            self.addENSE_PDB_RMS( modlid, pdbfile, rms_identity )
        else:
            self.addENSE_PDB_ID( modlid, rms_identity )

    def addPDB_RMS(self, modlid, pdbfile, rms_identity):
        warnings.warn( "Deprecated function: use addENSE_PDB_RMS", DeprecationWarning )
        self.addENSE_PDB_RMS( modlid, pdbfile, rms_identity )

    def addPDB_ID(self, modlid, pdbfile, rms_identity):
        warnings.warn( "Deprecated function: use addENSE_PDB_ID", DeprecationWarning )  
        self.addENSE_PDB_ID( modlid, pdbfile, rms_identity )

    def setMAP_MW(self, modlid, hklin, sf, phase, extent, rms, centre, protmw, nuclmw):
        warnings.warn( "Deprecated function: use addENSE_MAP", DeprecationWarning )  
        self.addENSE_MAP( modlid, hklin, sf, phase, extent, rms, centre, protmw, nuclmw )

    def setENSE_MAP_MW(self, modlid, hklin, sf, phase, extent, rms, centre, protmw, nuclmw):
        warnings.warn( "Deprecated function: use addENSE_MAP", DeprecationWarning )  
        self.addENSE_MAP( modlid, hklin, sf, phase, extent, rms, centre, protmw, nuclmw )


class FINA(object):

    def setFINA_SELE_PERCENT(self, rot, tra, step, num):
        warnings.warn( "Deprecated function: use setPEAK_[ROT|TRA]_SELE_PERC", DeprecationWarning )
        if rot:
            self.setPEAK_ROT_SELE_PERC( num )
        if tra:
            self.setPEAK_TRA_SELE_PERC( num )
    
    def setFINA_SELE_SIGMA(self, rot, tra, step, num):
        warnings.warn( "Deprecated function: use setPEAK_[ROT|TRA]_SELE_SIG", DeprecationWarning )
        if rot:
            self.setPEAK_ROT_SELE_SIG( num )
        if tra:
            self.setPEAK_TRA_SELE_SIG( num )


    def setFINA_SELE_NUMBER(self, rot, tra, step, num):
        warnings.warn("Deprecated function: use setPEAK_[ROT|TRA]_SELE_NUM", DeprecationWarning )
        if rot:
            self.setPEAK_ROT_SELE_NUM( num )
        if tra:
            self.setPEAK_TRA_SELE_NUM( num )


    def setFINA_SELE_ALL(self, rot, tra, step, num):
        warnings.warn(
            "Deprecated function: use setPEAK_[ROT|TRA]_SELE_ALL", DeprecationWarning )
        if rot:
            self.setPEAK_ROT_SELE_ALL()
        if tra:
            self.setPEAK_TRA_SELE_ALL()


class LABI(object):
    
    def addLABI(self, f, sigf):
        warnings.warn( "Deprecated function: use setLABI", DeprecationWarning ) 
        self.setLABI( f, sigf )

class LLGC(object):

    def setLLGC_CRYS_COMPLETE(self, xtalid, tmp):
        warnings.warn( "Deprecated function: use setLLGC_COMPLETE", DeprecationWarning )
        self.setLLGC_COMPLETE(tmp)

    def setLLGC_CRYS_CLASH_DEFAULT(self, xtalid):
        warnings.warn( "Deprecated function: use setLLGC_CLASH_DEFAULT", DeprecationWarning )
        self.setLLGC_CLASH_COMPLETE()

    def setLLGC_CRYS_CLASH_DISTANCE(self, xtalid):
        warnings.warn( "Deprecated function: use setLLGC_CLASH_DISTANCE", DeprecationWarning )
        self.setLLGC_CLASH_DISTANCE()

    def setLLGC_CRYS_SIGMA(self, xtalid, tmp):
        warnings.warn( "Deprecated function: use setLLGC_SIGMA", DeprecationWarning )
        self.setLLGC_SIGMA(tmp)

    def setLLGC_CRYS_SCAT_ELEMENT(self, xtalid, tmp):
        warnings.warn( "Deprecated function: use addLLGC_ATOM", DeprecationWarning )
        self.addLLGC_ELMENET(tmp)

    def setLLGC_CRYS_SCAT_CLUSTER(self, xtalid):
        warnings.warn( "Deprecated function: use addLLGC_CLUSTER", DeprecationWarning )
        self.addLLGC_CLUSTER()

    def setLLGC_CRYS_SCAT_REAL(self, xtalid):
        warnings.warn( "Deprecated function: use addLLGC_SCAT_REAL", DeprecationWarning )
        self.addLLGC_REAL()

    def setLLGC_CRYS_SCAT_ANOM(self, xtalid):
        warnings.warn( "Deprecated function: use addLLGC_SCAT_ANOM", DeprecationWarning )
        self.addLLGC_ANOM()

    def setLLGC_MAPS(self):
        warnings.warn( "Deprecated function: use setLLGM", DeprecationWarning )
        self.setLLGM()

class OUTL(object):

    def setOUTL(self, on_off):
        warnings.warn( "Deprecated function: use setOUTL_REJECT", DeprecationWarning )
        self.setOUTL_REJECT( on_off )

class PART(object):

    def setPART_PDB(self, filename):
        warnings.warn( "Deprecated function: use setPART_PDB_RMS or setPART_PDB_ID", DeprecationWarning )
        self.filename = filename
        if hasattr( self, "num" ):
            if self.homology_as_rms:
                self.setPART_PDB_RMS(self.filename, self.num )
            else:
                self.setPART_PDB_ID( self.filename, self.num )
    
    def setPART_RMS(self, homology_as_rms, num):
        warnings.warn( "Deprecated function: use setPART_PDB_RMS or setPART_PDB_ID", DeprecationWarning )
        self.homology_as_rms = homology_as_rms
        self.num = num
        if hasattr( self, "filename" ):
            if self.homology_as_rms:
                self.setPART_PDB_RMS( self.filename, self.num )
            else:
                self.setPART_PDB_ID( self.filename, self.num )

class PURG(object):

    def setPURGE(self, on_off):
        warnings.warn( "Deprecated function: use setPURG_SELECT", DeprecationWarning )
        self.setPURG( on_off )

    def setPURGE_PERCENT(self, perc):
        warnings.warn( "Deprecated function: use setPURG_PERCENT", DeprecationWarning )
        self.setPURG_PERCENT( perc)

class PACK(object):

    def setPACK_ALLOW(self, cutoff):
        warnings.warn( "Deprecated function: use setPACK_ALLOW and setPACK_CUTOFF", DeprecationWarning ) 
        self.setPACK_ALLOW()
        self.setPACK_CUTOFF(cutoff)

    def setPACK_BEST_MAX(self, cutoff):
        warnings.warn( "Deprecated function: use setPACK_CUTOFF", DeprecationWarning )
        self.setPACK_CUTOFF( perc)

class RESC(object):

    def setRESCORE(self, rot, tra, b):
        warnings.warn( "Deprecated function: use setRESC_ROT or setRESC_TRA", DeprecationWarning )
        if rot:
            self.setRESC_ROT( b )
        if tra:
            self.setRESC_TRA( b )

class SEAR(object):

    def addSEAR(self, ensembles):
        warnings.warn( "Deprecated function: use addSEAR_ENSE_OR_ENSE_NUM", DeprecationWarning )
        self.addSEAR_ENSE_OR_ENSE_NUM( ensembles, 1 )

    def setSEAR(self, ensembles):
        warnings.warn( "Deprecated function: use addSEAR_ENSE_OR_ENSE_NUM", DeprecationWarning )
        self.addSEAR_ENSE_OR_ENSE_NUM( ensembles, 1 )

    def addSEAR_NUM(self, ensembles, num):
        warnings.warn( "Deprecated function: use addSEAR_ENSE_OR_ENSE_NUM", DeprecationWarning )
        self.addSEAR_ENSE_OR_ENSE_NUM( ensembles, num )


class TRAN(object):

    def setFULL(self):
        warnings.warn( "Deprecated function: use setTRAN_FULL", DeprecationWarning )
        self.setTRAN_FULL()


    def setREGI(self, frac, corner1, corner2):
        warnings.warn( "Deprecated function: use setTRAN_REGI", DeprecationWarning )
        self.setTRAN_REGI( frac, corner1, corner2 )

    def setLINE(self, frac, line_start, line_end):
        warnings.warn( "Deprecated function: use setTRAN_LINE", DeprecationWarning )
        self.setTRAN_LINE( frac, line_start, line_end )

    def setAROU(self, frac,line_start,range):
        warnings.warn( "Deprecated function: use setTRAN_AROU", DeprecationWarning )
        self.setTRAN_AROU( frac, line_start, range )

    def setDEGE(self, string_value):
        warnings.warn( "Deprecated function: use setTRAN_DEGE", DeprecationWarning )
        self.setTRAN_DEGE( string_value )

class NMAP(object):

    def setNMAP_MODE(self, tmp):
        warnings.warn( "Deprecated function: use addLLGC_MODE", DeprecationWarning )
        self.addLLGC_MODE(tmp[0])

    def setNMAP_DQ(self, tmp):
        warnings.warn( "Deprecated function: use addLLGC_DQ", DeprecationWarning )
        self.addLLGC_DQ(tmp[0])

    def setNMAP_RMS(self, tmp):
        warnings.warn( "Deprecated function: use setLLGC_RMS_STEP", DeprecationWarning )
        self.setLLGC_RMS_STEP(tmp)

    def setNMAP_STRETCH(self, tmp):
        warnings.warn( "Deprecated function: use setLLGC_RMS_STRETCH", DeprecationWarning )
        self.setLLGC_RMS_STRETCH(tmp)

    def setNMAP_CLASH(self, tmp):
        warnings.warn( "Deprecated function: use setLLGC_RMS_CLASH", DeprecationWarning )
        self.setLLGC_RMS_CLASH(tmp)

    def setNMAP_MAXRMS(self, tmp):
        warnings.warn( "Deprecated function: use setLLGC_RMS_MAX", DeprecationWarning )
        self.setLLGC_RMS_MAX(tmp)

    def setNMAP_BACKWARD(self):
        warnings.warn( "Deprecated function: use setLLGC_RMS_DIR_BACKWARD", DeprecationWarning )
        self.setLLGC_RMS_DIR_BACKWARD(tmp)

    def setNMAP_FORWARD(self):
        warnings.warn( "Deprecated function: use setLLGC_RMS_DIR_FORWARD", DeprecationWarning )
        self.setLLGC_RMS_DIR_FORWARD(tmp)

    def setNMAP_TO_AND_FRO(self):
        warnings.warn( "Deprecated function: use setLLGC_RMS_DIR_TOFRO", DeprecationWarning )
        self.setLLGC_RMS_DIR_TOFRO(tmp)


