|
11 | 11 | '''
|
12 | 12 | from __future__ import print_function, division, unicode_literals, absolute_import
|
13 | 13 | import os
|
14 |
| -import shutil |
15 | 14 | import errno
|
16 |
| -from warnings import warn |
| 15 | +import atexit |
17 | 16 | from io import StringIO
|
18 | 17 | from distutils.version import LooseVersion
|
19 | 18 | from simplejson import load, dump
|
20 | 19 | import numpy as np
|
21 | 20 |
|
22 | 21 | from builtins import str, object, open
|
23 |
| -from future import standard_library |
24 |
| -standard_library.install_aliases() |
25 |
| - |
26 |
| -import configparser |
27 | 22 | from ..external import portalocker
|
| 23 | +import configparser |
28 | 24 |
|
| 25 | +from future import standard_library |
| 26 | +standard_library.install_aliases() |
29 | 27 |
|
30 | 28 | NUMPY_MMAP = LooseVersion(np.__version__) >= LooseVersion('1.12.0')
|
31 | 29 |
|
@@ -194,6 +192,7 @@ def get_display(self):
|
194 | 192 | sysdisplay = sysdisplay or os.getenv('DISPLAY')
|
195 | 193 | if sysdisplay:
|
196 | 194 | from collections import namedtuple
|
| 195 | + |
197 | 196 | def _mock():
|
198 | 197 | pass
|
199 | 198 |
|
@@ -222,3 +221,16 @@ def _mock():
|
222 | 221 |
|
223 | 222 | if hasattr(self._display, 'new_display'):
|
224 | 223 | return ':%d' % self._display.new_display
|
| 224 | + |
| 225 | + def stop_display(self): |
| 226 | + """Closes the display if started""" |
| 227 | + if self._display is not None: |
| 228 | + self._display.stop() |
| 229 | + |
| 230 | + |
| 231 | +@atexit.register |
| 232 | +def free_display(): |
| 233 | + from nipype import config |
| 234 | + from nipype import logging |
| 235 | + config.stop_display() |
| 236 | + logging.getLogger('interface').info('Closing display (if virtual)') |
0 commit comments