def read_ranges()

in elastic/shared/query_handlers/range_query.py [0:0]


    def read_ranges(self):
        fields = list(self.request_body.keys())
        if len(fields) == 1:
            self.query_range = self.request_body[fields[0]]
            # we require date queries to use strict_date_optional_time vs trying to figure out the format
            if "format" in self.query_range and self.query_range["format"] == "strict_date_optional_time":
                if "gte" in self.query_range:
                    self.lower_bound = parse_date_optional_time(self.query_range["gte"])
                elif "gt" in self.query_range:
                    self.lower_bound = parse_date_optional_time(self.query_range["gt"])
                    self.lower_inclusive = False
                if "lte" in self.query_range:
                    self.upper_bound = parse_date_optional_time(self.query_range["lte"])
                elif "lt" in self.query_range:
                    self.upper_bound = parse_date_optional_time(self.query_range["lt"])
                    self.upper_inclusive = False
                if not self.upper_bound or not self.lower_bound:
                    raise exceptions.TrackConfigError(
                        f'Range query for date does not have both "gte" or "gt" ' f'and "lte" or "lt" key - [{self.request_body}]'
                    )
        else:
            raise exceptions.TrackConfigError(f"More than one field in range query [{fields}]")