code: def contractDetails(self, contract_identifier):
          
  
          if isinstance(contract_identifier, Contract):
              tickerId = self.tickerId(contract_identifier)
          else:
              if str(contract_identifier).isdigit():
                  tickerId = contract_identifier
              else:
                  tickerId = self.tickerId(contract_identifier)
  
          if tickerId in self.contract_details:
              return self.contract_details[tickerId]
          elif tickerId in self._contract_details:
              return self._contract_details[tickerId]
  
          # default values
          return {
              'm_category': None, 'm_contractMonth': '', 'downloaded': False, 'm_evMultiplier': 0,
              'm_evRule': None, 'm_industry': None, 'm_liquidHours': '', 'm_longName': '',
              'm_marketName': '', 'm_minTick': 0.01, 'm_orderTypes': '', 'm_priceMagnifier': 0,
              'm_subcategory': None, 'm_timeZoneId': '', 'm_tradingHours': '', 'm_underConId': 0,
              'm_validExchanges': 'SMART', 'contracts': [Contract()], 'm_summary': {
                  'm_conId': 0, 'm_currency': 'USD', 'm_exchange': 'SMART', 'm_expiry': '',
                  'm_includeExpired': False, 'm_localSymbol': '', 'm_multiplier': '',
                  'm_primaryExch': None, 'm_right': None, 'm_secType': '',
                  'm_strike': 0.0, 'm_symbol': '', 'm_tradingClass': '',
              }
          }
docs: returns string from contract tuple