updated requirements to include pydot and pyparsing

also threw dot writing in a try catch block