code: def _swapLayers(self, layerName, otherLayerName):
          
          import random
          layer1 = self.getLayer(layerName)
          layer2 = self.getLayer(otherLayerName)
          # make a temporary name and assign it to
          # the first layer to prevent two layers
          # from having the same name at once.
          layerOrder = self.layerOrder
          for _ in range(50):
              # shout out to PostScript unique IDs
              tempLayerName = str(random.randint(4000000, 4999999))
              if tempLayerName not in layerOrder:
                  break
          if tempLayerName in layerOrder:
              raise FontPartsError(("Couldn't find a temporary layer name "
                                    "after 50 tries. Sorry. Please try again."))
          layer1.name = tempLayerName
          # now swap
          layer2.name = layerName
          layer1.name = otherLayerName
docs: This is the environment implementation of :meth:`BaseFont.swapLayerNames`.
          **layerName** will be a :ref:`type-string` representing a valid layer name.
          The value will have been normalized with :func:`normalizers.normalizeLayerName`
          and **layerName** will be a layer that exists in the font. **otherLayerName**
          will be a :ref:`type-string` representing a valid layer name. The value will
          have been normalized with :func:`normalizers.normalizeLayerName` and
          **otherLayerName** will be a layer that exists in the font.
  
          Subclasses may override this method.