parameters: (self, s, e, gra)
return_statement: return sorted(id for id, timestamp in self.__logs \
                        if begin <= timestamp[:i] <= end)
docstring: :type s: str
          :type e: str
          :type gra: str
          :rtype: List[int]
docstring_summary: :type s: str
          :type e: str
          :type gra: str
          :rtype: List[int]
docstring_tokens: : type s : str : type e : str : type gra : str : rtype : List [ int ]
function: def retrieve(self, s, e, gra):
          """
          :type s: str
          :type e: str
          :type gra: str
          :rtype: List[int]
          """
          i = self.__granularity[gra]
          begin = s[:i]
          end = e[:i]
          return sorted(id for id, timestamp in self.__logs \
                        if begin <= timestamp[:i] <= end)
function_tokens: def retrieve ( self , s , e , gra ) : i = self . __granularity [ gra ] begin = s [ : i ] end = e [ : i ] return sorted ( id for id , timestamp in self . __logs if begin <= timestamp [ : i ] <= end )