Newton's square root
Looks good overall. Some suggestions:


The newton_sqrt is written in a quite generic manner. Unfortunately it may only calculate square roots - because lambdas are defined inside the function. I would rewrite it along the lines of

def newton_raphson(x, x0, func, derivative, governing_options):
    your code verbatim, except the lambda definitions 

def newton_sqrt(x, governing_options):
    return newton_raphson(x, x/2, lambda y: y*y - x, lambda y: 2*y, governing_options)

In any case, you most likely want to test for n &gt; 0 and raise InvalidArgiment accordingly.
I am not sure about the epsilon. If an abs(prime) &lt; epsilon condition triggers, the iteration would not converge anyway. I don't see an extra value here, but maybe it is just me.