code: def from_dict(data, ctx):
          
  
          data = data.copy()
  
          if data.get('bids') is not None:
              data['bids'] = [
                  ctx.pricing_common.PriceBucket.from_dict(d, ctx)
                  for d in data.get('bids')
              ]
  
          if data.get('asks') is not None:
              data['asks'] = [
                  ctx.pricing_common.PriceBucket.from_dict(d, ctx)
                  for d in data.get('asks')
              ]
  
          if data.get('closeoutBid') is not None:
              data['closeoutBid'] = ctx.convert_decimal_number(
                  data.get('closeoutBid')
              )
  
          if data.get('closeoutAsk') is not None:
              data['closeoutAsk'] = ctx.convert_decimal_number(
                  data.get('closeoutAsk')
              )
  
          if data.get('quoteHomeConversionFactors') is not None:
              data['quoteHomeConversionFactors'] = \
                  ctx.pricing.QuoteHomeConversionFactors.from_dict(
                      data['quoteHomeConversionFactors'], ctx
                  )
  
          if data.get('unitsAvailable') is not None:
              data['unitsAvailable'] = \
                  ctx.order.UnitsAvailable.from_dict(
                      data['unitsAvailable'], ctx
                  )
  
          return ClientPrice(**data)
docs: Instantiate a new ClientPrice from a dict (generally from loading a
          JSON response). The data used to instantiate the ClientPrice is a
          shallow copy of the dict passed in, with any complex child types
          instantiated appropriately.