parameters: (
          self, location: Union[types.Location, Well] = None, home_after: bool = True
      )
return_statement: return self
docstring: Drop the current tip.
  
          If no location is passed, both pipettes will drop their
          tips into :py:attr:`trash_container`, which if not specified defaults
          to the fixed trash in slot 12.
  
          If you pass in a location, you must pass in the tiprack location that
          you wish to move based on the primary pipette.
  
          The location in which to drop the tip can be manually specified with
          the ``location`` argument. The ``location`` argument can be specified
          several ways:
  
              - If the only thing to specify is which well into which to drop
                a tip, `location` can be a :py:class:`.Well`. For instance,
                if you have a tip rack in a variable called `tiprack`, you can
                drop a tip into a specific well on that tiprack with the call
                `instr.drop_tip(tiprack.wells()[0])`. This style of call can
                be used to make the robot drop a tip into arbitrary labware.
              - If the position to drop the tip from as well as the
                :py:class:`.Well` to drop the tip into needs to be specified,
                for instance to tell the robot to drop a tip from an unusually
                large height above the tiprack, `location`
                can be a :py:class:`.types.Location`; for instance, you can call
                `instr.drop_tip(tiprack.wells()[0].top())`.
  
          :param location: The location to drop the tip
          :type location: :py:class:`.types.Location` or :py:class:`.Well` or
                          None
          :param home_after: Whether to home the plunger after dropping the tip
                             (defaults to ``True``). The plunger must home after
                             dropping tips because the ejector shroud that pops
                             the tip off the end of the pipette is driven by the
                             plunger motor, and may skip steps when dropping the
                             tip.
  
          :returns: This instance
  
          :raises TypeError: If a location is not relative to a well.
docstring_summary: Drop the current tip.
docstring_tokens: Drop the current tip .
function: def drop_tip(
          self, location: Union[types.Location, Well] = None, home_after: bool = True
      ) -> PairedInstrumentContext:
          """
          Drop the current tip.
  
          If no location is passed, both pipettes will drop their
          tips into :py:attr:`trash_container`, which if not specified defaults
          to the fixed trash in slot 12.
  
          If you pass in a location, you must pass in the tiprack location that
          you wish to move based on the primary pipette.
  
          The location in which to drop the tip can be manually specified with
          the ``location`` argument. The ``location`` argument can be specified
          several ways:
  
              - If the only thing to specify is which well into which to drop
                a tip, `location` can be a :py:class:`.Well`. For instance,
                if you have a tip rack in a variable called `tiprack`, you can
                drop a tip into a specific well on that tiprack with the call
                `instr.drop_tip(tiprack.wells()[0])`. This style of call can
                be used to make the robot drop a tip into arbitrary labware.
              - If the position to drop the tip from as well as the
                :py:class:`.Well` to drop the tip into needs to be specified,
                for instance to tell the robot to drop a tip from an unusually
                large height above the tiprack, `location`
                can be a :py:class:`.types.Location`; for instance, you can call
                `instr.drop_tip(tiprack.wells()[0].top())`.
  
          :param location: The location to drop the tip
          :type location: :py:class:`.types.Location` or :py:class:`.Well` or
                          None
          :param home_after: Whether to home the plunger after dropping the tip
                             (defaults to ``True``). The plunger must home after
                             dropping tips because the ejector shroud that pops
                             the tip off the end of the pipette is driven by the
                             plunger motor, and may skip steps when dropping the
                             tip.
  
          :returns: This instance
  
          :raises TypeError: If a location is not relative to a well.
          """
          is_trash = False
          tiprack = None
          if location and isinstance(location, types.Location):
              if location.labware.is_well:
                  target = location
                  tiprack = location.labware.as_well().parent
              else:
                  raise TypeError(
                      "If a location is specified as a types.Location (for "
                      "instance, as the result of a call to "
                      "tiprack.wells()[0].top()) it must be a location "
                      "relative to a well, since that is where a tip is "
                      "dropped. The passed location, however, is in "
                      "reference to {}".format(location.labware)
                  )
          elif location and isinstance(location, Well):
              if LabwareLike(location).is_fixed_trash():
                  target = location.top()
              else:
                  primary_pipette = self._instruments[self._pair_policy.primary]
                  target = self._drop_tip_target(location, primary_pipette)
                  tiprack = location.parent
          elif not location:
              target = self.trash_container.wells()[0].top()
              is_trash = True
          else:
              raise TypeError(
                  "If specified, location should be an instance of "
                  "types.Location (e.g. the return value from "
                  "tiprack.wells()[0].top()) or a Well (e.g. tiprack.wells()[0]."
                  " However, it is a {}".format(location)
              )
  
          instruments = list(self._instruments.values())
          if not is_trash and tiprack and isinstance(target.labware, Well):
              targets = [
                  target,
                  self._get_secondary_target(tiprack, target.labware.as_well()),
              ]
          else:
              targets = [target]
  
          with publish_context(
              broker=self.broker,
              command=cmds.paired_drop_tip(instruments=instruments, locations=targets),
          ):
              self._implementation.drop_tip(target, home_after)
  
          self._last_tip_picked_up_from = None
          return self
function_tokens: def drop_tip ( self , location : Union [ types . Location , Well ] = None , home_after : bool = True ) -> PairedInstrumentContext : is_trash = False tiprack = None if location and isinstance ( location , types . Location ) : if location . labware . is_well : target = location tiprack = location . labware . as_well ( ) . parent else : raise TypeError ( "If a location is specified as a types.Location (for " "instance, as the result of a call to " "tiprack.wells()[0].top()) it must be a location " "relative to a well, since that is where a tip is " "dropped. The passed location, however, is in " "reference to {}" . format ( location . labware ) ) elif location and isinstance ( location , Well ) : if LabwareLike ( location ) . is_fixed_trash ( ) : target = location . top ( ) else : primary_pipette = self . _instruments [ self . _pair_policy . primary ] target = self . _drop_tip_target ( location , primary_pipette ) tiprack = location . parent elif not location : target = self . trash_container . wells ( ) [ 0 ] . top ( ) is_trash = True else : raise TypeError ( "If specified, location should be an instance of " "types.Location (e.g. the return value from " "tiprack.wells()[0].top()) or a Well (e.g. tiprack.wells()[0]." " However, it is a {}" . format ( location ) ) instruments = list ( self . _instruments . values ( ) ) if not is_trash and tiprack and isinstance ( target . labware , Well ) : targets = [ target , self . _get_secondary_target ( tiprack , target . labware . as_well ( ) ) , ] else : targets = [ target ] with publish_context ( broker = self . broker , command = cmds . paired_drop_tip ( instruments = instruments , locations = targets ) , ) : self . _implementation . drop_tip ( target , home_after ) self . _last_tip_picked_up_from = None return self