tells if is this contract has sub-contract with expiries/strikes/sides

def isMultiContract(self, contract):
        """ tells if is this contract has sub-contract with expiries/strikes/sides """
        if contract.m_secType == "FUT" and contract.m_expiry == "":
            return True

        if contract.m_secType in ["OPT", "FOP"] and \
                (contract.m_expiry == "" or contract.m_strike == "" or contract.m_right == ""):
            return True

        tickerId = self.tickerId(contract)
        if tickerId in self.contract_details and \
                len(self.contract_details[tickerId]["contracts"]) > 1:
            return True

        return False