docs: def _get_library_metadata(self, date_range):
          """
          Retrieve the libraries for the given date range, the assumption is that the date ranges do not overlap and
          they are CLOSED_CLOSED.
  
          At the moment the date range is mandatory
          """
          if date_range is None:
              raise Exception("A date range must be provided")
          if not (date_range.start and date_range.end):
              raise Exception("The date range {0} must contain a start and end date".format(date_range))
  
          start = date_range.start if date_range.start.tzinfo is not None else date_range.start.replace(tzinfo=mktz())
          end = date_range.end if date_range.end.tzinfo is not None else date_range.end.replace(tzinfo=mktz())
          query = {'$or': [{'start': {'$lte': start}, 'end': {'$gte': start}},
                           {'start': {'$gte': start}, 'end': {'$lte': end}},
                           {'start': {'$lte': end}, 'end': {'$gte': end}}]}
  
          cursor = self._collection.find(query,
                                         projection={'library_name': 1, 'start': 1, 'end': 1},
                                         sort=[('start', pymongo.ASCENDING)])
  
          results = []
          for res in cursor:
              start = res['start']
              if date_range.start.tzinfo is not None and start.tzinfo is None:
                  start = start.replace(tzinfo=mktz("UTC")).astimezone(tz=date_range.start.tzinfo)
  
              end = res['end']
              if date_range.end.tzinfo is not None and end.tzinfo is None:
                  end = end.replace(tzinfo=mktz("UTC")).astimezone(tz=date_range.end.tzinfo)
  
              results.append(TickStoreLibrary(res['library_name'], DateRange(start, end, CLOSED_CLOSED)))
          return results