class_docstr: Prices forwards for odd dates which are not quoted using linear interpolation,
  eg. if we have forward points for 1W and 1M, and spot date but we want to price a 3W forward, or any arbitrary horizon
  date that lies in that interval
  
  Also calculates the implied deposit rate from FX spot, FX forward points and deposit rate.
class_docstr_tok: ["Prices","forwards","for","odd","dates","which","are","not","quoted","using","linear","interpolation",",","eg",".","if","we","have","forward","points","for","1W","and","1M",",","and","spot","date","but","we","want","to","price","a","3W","forward",",","or","any","arbitrary","horizon","date","that","lies","in","that","interval","Also","calculates","the","implied","deposit","rate","from","FX","spot",",","FX","forward","points","and","deposit","rate","."]
code: def _setup_forwards_calculation(
      self,
      cross,
      spot_date,
      market_df,
      quoted_delivery_df,
      fx_forwards_tenor,
  ):
      cal = cross
  
      # Get the quoted delivery dates for every quoted tenor in our forwards market data
      # Eg. what's the delivery date for EURUSD SN, 1W etc.
      quoted_delivery_df = self.generate_quoted_delivery(
          cross, market_df, quoted_delivery_df, fx_forwards_tenor, cal
      )
  
      # Typically most divisors of forward points are 10000.0 (but JPY is an exception)
      divisor = self.get_forwards_divisor(cross[3:6])
  
      forwards_points_arr = (
          market_df[
              [cross + x + ".close" for x in fx_forwards_tenor]
          ].values
          / divisor
      )
  
      quoted_delivery_days_arr = np.zeros(
          (len(quoted_delivery_df.index), len(fx_forwards_tenor))
      )
  
      # Get difference between each quoted point and the spot date (NOT horizon date)
      # eg. for 1W this is generally 7 days, for 2W it's 14 days etc.
      for i, tenor in enumerate(fx_forwards_tenor):
          quoted_delivery_days_arr[:, i] = (
              pd.DatetimeIndex(
                  quoted_delivery_df[cross + tenor + ".delivery"]
              )
              - spot_date
          ).days
  
      return (
          quoted_delivery_df,
          quoted_delivery_days_arr,
          forwards_points_arr,
          divisor,
      )
  
file_path: finmarketpy/finmarketpy/curve/rates/fxforwardspricer.py
imports: import numpy
  import pandas
  from numba import guvectorize
  from findatapy.timeseries import Calendar
  from finmarketpy.util.marketconstants import MarketConstants
  from finmarketpy.curve.abstractpricer import AbstractPricer
label_desc: Use image node_id 5 for calling the FXForwardsPricer obj's underlying member method code with example usage: obj._setup_forwards_calculation(cross, spot_date, market_df, quoted_delivery_df, fx_forwards_tenor) and returns: quoted_delivery_df,  quoted_delivery_days_arr,  forwards_points_arr,  divisor