docstr: Compute each asset's weight in the portfolio by calculating its held
  value divided by the total value of all positions.
  
  Each equity's value is its price times the number of shares held. Each
  futures contract's value is its unit price times number of shares held
  times the multiplier.
code: def current_portfolio_weights(self):
      """
      Compute each asset's weight in the portfolio by calculating its held
      value divided by the total value of all positions.
  
      Each equity's value is its price times the number of shares held. Each
      futures contract's value is its unit price times number of shares held
      times the multiplier.
      """
      position_values = pd.Series(
          {
              asset: (
                  position.last_sale_price
                  * position.amount
                  * asset_multiplier(asset)
              )
              for asset, position in self.positions.items()
          }
      )
      return position_values / self.portfolio_value
  
imports: from warnings import warn
  import pandas
  from catalyst.assets import Asset, Future
  from catalyst.utils.input_validation import expect_types
  from .utils.enum import enum
  from catalyst._protocol import BarData
label_desc: Use image node_id 3 for calling the Portfolio obj's underlying member method code with example usage: obj.current_portfolio_weights() and returns: unknown