From 0f2ae012984722b080dbd36ab3ab56f3d3135d42 Mon Sep 17 00:00:00 2001 From: James Graham <J.A.Graham@soton.ac.uk> Date: Fri, 10 Jun 2016 12:12:15 +0100 Subject: [PATCH] Fixed failing import if mdtraj not present --- pycgtool/frame.py | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/pycgtool/frame.py b/pycgtool/frame.py index 0edb531..f0fd2a7 100644 --- a/pycgtool/frame.py +++ b/pycgtool/frame.py @@ -11,7 +11,11 @@ import numpy as np from simpletraj import trajectory -from mdtraj.formats import XTCTrajectoryFile +try: + from mdtraj.formats import XTCTrajectoryFile +except ImportError: + pass + from .util import backup_file from .parsers.cfg import CFG @@ -162,6 +166,8 @@ class Frame: raise FileNotFoundError(xtc) from e e.args = ("Error opening file '{0}'".format(xtc),) raise + except NameError as e: + raise ImportError("No module named 'mdtraj'") from e else: xyz, time, step, box = self.xtc.read(n_frames=1) natoms = len(xyz[0]) @@ -215,6 +221,8 @@ class Frame: raise def _next_frame_mdtraj(self, exclude=None): + if XTCTrajectoryFile is None: + raise ImportError("No module named 'mdtraj'") try: # self.xtc.seek(self.number) i = 0 @@ -292,13 +300,16 @@ class Frame: def flush_xtc_buffer(self, filename): if self._xtc_buffer is not None: - xtc = XTCTrajectoryFile(filename, mode="w") + try: + xtc = XTCTrajectoryFile(filename, mode="w") - xyz, step, box = self._xtc_buffer() - xtc.write(xyz, step=step, box=box) - xtc.close() + xyz, step, box = self._xtc_buffer() + xtc.write(xyz, step=step, box=box) + xtc.close() - self._xtc_buffer = None + self._xtc_buffer = None + except NameError as e: + raise ImportError("No module named 'mdtraj'") from e def write_xtc(self, filename): if self._xtc_buffer is None: -- GitLab