'generated source for method contractDetailsMsg'

@classmethod
def contractDetailsMsg(cls, contractDetails):

    msg = (((((((((((((((((((((((((((((((((((((((((((((((('marketName    =    ' + str(contractDetails.m_marketName)) + '\n') + 'minTick    =    ') + str(contractDetails.m_minTick)) + '\n') + 'price    magnifier    =    ') + str(contractDetails.m_priceMagnifier)) + '\n') + 'orderTypes    =    ') + str(contractDetails.m_orderTypes)) + '\n') + 'validExchanges    =    ') + str(contractDetails.m_validExchanges)) + '\n') + 'underConId    =    ') + str(contractDetails.m_underConId)) + '\n') + 'longName    =    ') + str(contractDetails.m_longName)) + '\n') + 'contractMonth    =    ') + str(contractDetails.m_contractMonth)) + '\n') + 'industry    =    ') + str(contractDetails.m_industry)) + '\n') + 'category    =    ') + str(contractDetails.m_category)) + '\n') + 'subcategory    =    ') + str(contractDetails.m_subcategory)) + '\n') + 'timeZoneId    =    ') + str(contractDetails.m_timeZoneId)) + '\n') + 'tradingHours    =    ') + str(contractDetails.m_tradingHours)) + '\n') + 'liquidHours    =    ') + str(contractDetails.m_liquidHours)) + '\n') + 'evRule    =    ') + str(contractDetails.m_evRule)) + '\n') + 'evMultiplier    =    ') + str(contractDetails.m_evMultiplier)) + '\n') + cls.contractDetailsSecIdList(contractDetails))
    return msg
