docs: def get_chunk_ranges(self, symbol, chunk_range=None, reverse=False):
          """
          Returns a generator of (Start, End) tuples for each chunk in the symbol
  
          Parameters
          ----------
          symbol: str
              the symbol for the given item in the DB
          chunk_range: None, or a range object
              allows you to subset the chunks by range
          reverse: boolean
              return the chunk ranges in reverse order
  
          Returns
          -------
          generator
          """
          sym = self._get_symbol_info(symbol)
          if not sym:
              raise NoDataFoundException("Symbol does not exist.")
          c = CHUNKER_MAP[sym[CHUNKER]]
  
          # all symbols have a segment 0
          spec = {SYMBOL: symbol, SEGMENT: 0}
          if chunk_range is not None:
              spec.update(CHUNKER_MAP[sym[CHUNKER]].to_mongo(chunk_range))
  
          for x in self._collection.find(spec,
                                         projection=[START, END],
                                         sort=[(START, pymongo.ASCENDING if not reverse else pymongo.DESCENDING)]):
              yield (c.chunk_to_str(x[START]), c.chunk_to_str(x[END]))