Got it working. Thanks for the help guys!
def smooshLeft(layer):
setsToMove = []
setToAdd = []
for path in layer.paths:
for node in path.nodes:
if node.position.x < margin:
setToAdd.append(node)
if node.nextNode.position.x >= margin:
setsToMove.append(setToAdd)
setToAdd = []
print (setsToMove)
for set in setsToMove:
minX = margin
for node in set:
if node.x < minX:
minX = node.x
deltaX = margin - minX
for node in set:
scale = (zoneWidth - margin) / (zoneWidth - margin + deltaX)
originX = zoneWidth
transform = NSAffineTransform.new()
transform.translateXBy_yBy_(originX, 0)
transform.scaleXBy_yBy_(scale, 1)
transform.translateXBy_yBy_(-originX, 0)
node.position = transform.transformPoint_(node.position)