class_docstr: An exchange where assets are traded.
  
  Parameters
  ----------
  name : str or None
      The full name of the exchange, for example 'NEW YORK STOCK EXCHANGE' or
      'NASDAQ GLOBAL MARKET'.
  canonical_name : str
      The canonical name of the exchange, for example 'NYSE' or 'NASDAQ'. If
      None this will be the same as the name.
  country_code : str
      The country code where the exchange is located.
  
  Attributes
  ----------
  name : str or None
      The full name of the exchange, for example 'NEW YORK STOCK EXCHANGE' or
      'NASDAQ GLOBAL MARKET'.
  canonical_name : str
      The canonical name of the exchange, for example 'NYSE' or 'NASDAQ'. If
      None this will be the same as the name.
  country_code : str
      The country code where the exchange is located.
  calendar : TradingCalendar
      The trading calendar the exchange uses.
code: def __ne__(self, other):
      eq = self == other
      if eq is NotImplemented:
          return NotImplemented
      return not eq
  
imports: from zipline.utils.calendars import get_calendar
label_desc: Use image node_id 5 for calling the ExchangeInfo obj's underlying member method code with example usage: obj.__ne__(other) and returns: unknown, NotImplemented