docstr: Processes a list of splits by modifying any positions as needed.
  
  Parameters
  ----------
  splits: list
      A list of splits.  Each split is a tuple of (asset, ratio).
  
  Returns
  -------
  int: The leftover cash from fractional sahres after modifying each
      position.
docstr_tok: ["Processes","a","list","of","splits","by","modifying","any","positions","as","needed",".","Parameters","--","--","--","--","--","splits",":","list","A","list","of","splits",".","Each","split","is","a","tuple","of","(","asset",",","ratio",")",".","Returns","--","--","--","-","int",":","The","leftover","cash","from","fractional","sahres","after","modifying","each","position","."]
code: def handle_splits(self, splits):
      """
      Processes a list of splits by modifying any positions as needed.
  
      Parameters
      ----------
      splits: list
          A list of splits.  Each split is a tuple of (asset, ratio).
  
      Returns
      -------
      int: The leftover cash from fractional sahres after modifying each
          position.
      """
      total_leftover_cash = 0
  
      for asset, ratio in splits:
          if asset in self.positions:
              # Make the position object handle the split. It returns the
              # leftover cash from a fractional share, if there is any.
              position = self.positions[asset]
              leftover_cash = position.handle_split(asset, ratio)
              total_leftover_cash += leftover_cash
  
      return total_leftover_cash
  
imports: from __future__ import division
  import logbook
  import numpy
  from collections import namedtuple
  from math import isnan
  from six import iteritems, itervalues
  from catalyst.finance.performance.position import Position
  from catalyst.finance.transaction import Transaction
  from catalyst.utils.input_validation import expect_types
  import catalyst.protocol
  from catalyst.assets import Future, Asset
  from .position import positiondict
  from catalyst.constants import LOG_LEVEL
label_desc: Use image node_id 5 for calling the PositionTracker obj's underlying member method code with example usage: obj.handle_splits(splits) and returns: total_leftover_cash