code: def get_series(self, security_symbols, calculation_codes, query_start_date=None, query_end_date=None,
          resample_frequency=None, resample_function=None, fill_method=None, aggregate_function=None):
          
          security_symbols = self._str_or_list(security_symbols)
          calculation_codes = self._str_or_list(calculation_codes)
  
          url_path = self._build_url_path(security_symbols, 
              'series', calculation_codes)
  
          params = {}
          if query_start_date:
              params['start_date'] = self._format_query_date_for_url(query_start_date)
          if query_end_date:
              params['end_date'] = self._format_query_date_for_url(query_end_date)
          if resample_frequency:
              params['resample_frequency'] = resample_frequency
          if resample_function:
              params['resample_function'] = resample_function
          if fill_method:
              params['fill_method'] = fill_method
          if aggregate_function:
              params['aggregate_function'] = aggregate_function
  
          return self._get_data(url_path, params)
docs: Queries data from a /<security_type>/series endpoint.
  
          Args:
              security_symbols (list): List of string symbols
              calculation_codes (list): List og string calculation codes
              query_start_date
                  (datetime): date after which the endpoint will query data for.
                  (int): Negative integer representing relative periods(as it relates to each calc code) in the past.
              query_end_date
                  (datetime): date on or before which the endpoint will query data for. 
                  (int): Negative integer representing relative periods(as it relates to each calc code) in the past.
  
          Returns:
              dict of the decoded json from server response.
  
          Notes:
              The max length of any list arg is 100